Mysql 学习记录

时间:2022-05-27 15:07:59

( xampp 的mysql 与 直接用 dnf 安装的 mysql 有冲突! )

1. 数据库基本知识:

  一张表的行 又称为 记录

  一张表的列 又称为 字段

  表结构:所有字段,规定了你的每一条记录所应该填的内容,不能随意乱写

2.mysql 登录:

  mysql -u root -p password (root密码)

3. 查看数据库 : show databases;

4. 选择数据库: use database-name;

5. 数据库文件位置:/var/lib/mysql

6.查看表结构:desc table-name;

7.修改表名称:rename table table-name1 to table-name0

8.将使用过程中的文件保存至特定文件:(启动时操作)mysql -u root -p password --tee="/filename"

9.表字段类型:数值:int, float

         字符串:char(n), varchar(n), text 65535字节, longtext 42亿字节

         日期:date, datetime, timestamp, time, year

10.数据字段属性: zerofill,不足指定位数时,自动往前添0

          unsigned,无符号

          auto_increment,自增

          not null,这一列允许为null

null, 这一列允许为null

          default,默认值,一般配合 not null 使用

11. 帮助: ? word ; 如 ? date

12. 查询数据库基本信息:\s

  查看其他可使用的一些帮助命令:\h

13.查看数据库或表创建时的信息:show create database database-name;

                show create table table-name;

14. php设置字符集为 utf8, $sql = "set names uft8";

15. 在命令(sql语句)前加上 desc: 调试用,显示此条语句的运行相关信息

16.命令末尾(分号前)加上 \G : 调整输出信息中行的显示方式为列状

17.普通索引: index name(au),如 index in_named(name)

18. 查看index:show index from ..  (? show 查看其他show的方法)

19. 后期添加普通索引及删除索引:alter table table_name drop index index_name

                 alter table table_name add index index_name(au)

20.后期添加/修改/删除字段:alter table table_name add age int ;

             alter table table_name modify age int not null default 20;

              alter table table_name drop age;

21.修改列名:alter table table_name change name username varchar(30);

22.一次更改多个值:update t1 set id = 77, username = 'h' where id = 7;   // 逗号隔开

23.按数值范围操作:如 select id from table_name where id in (1, 4, 5);

          select id from table_name where id >= 1 and id < = 5;

          select id from table_name where id between 1 and 5;

24.distinct 取出唯一值:select distinct age from user;

25. null : 不能用 = 判断,用 is 方法

26.like 关键字:select * from user where name like "%u%"

        % 任意多个字符

        正则:select * from user where name regexp "u"

27.使用 limit 限制取出个数:select * from user where name regexp "u" limit 3 (取前3个)

            select * from user where name regexp "u" limit 1, 3(取从第二个开始取2个)

28.concat(str1, str2) 连接字符

29.rand() 求随机数

30.group by 必须放在 order by 前

31.group by 必须放在 having 之前,having是对分组的结果进行筛选,此时不能用where

32.after :往id字段前插入字段uid  alter table post add uid int unsigned after id;

33.left join on : 左连接 ,左边的表显示完全

34:php 取数据集:

mysql_fetch_assoc // 关联数组

mysql_fetch_row // 索引数组

mysql_fetch_array // 混合数组

mysql_fetch_object // 对象

(待继续更新)