mysql

mysql

  • mysql基础语句
  • 数据类型
  • 其他

mysql基础语句

除了第一个语句,其他的注意加上最后的分号。

  1. 连接:移动到mysql文件夹中的bin文件夹后,输入mysql -u用户名 -p密码
  2. 备注:#内容
  3. 创建库:create database 库名 (charset utf8);
    括号里的可加可不加。
  4. 删除库:drop database 库名;
  5. 查看库:show databases;
  6. 选择库:use 库名;
  7. 创建表:create table 表名(
          列名 列类型,
          列名 列类型
          )engine myisam charset utf8;
    注意有逗号。
    另外,以下列参数都在列类型后面添加
    (1)若不想输入数据为NULL的话,添加not null
    (2)定义默认值,添加default 默认值
    (3)自增属性,添加auto_increment
    (4)主键约束,添加primary key
  8. 查看表:show tables;
  9. 删除表:drop table 表名;
  10. 更改表名:rename table 表名 to 新表名;
  11. 插入数据:insert into 表名 values
            (第一列,第二列,…),
            (第一列,第二列,…),
            (第一列,第二列,…);
    另外一种添加部分列的方式,
    insert into 表名
    (列名,列名,…)
    values
    (对应的列),
    (对应的列);
  12. 查看表中数据:select 数据名,数据名… from 表名 where 表达式;
    若要查找整张表的数据,则用星号,星号代表所有列
    select * from 表名;
  13. 清空表:truncate 表名;
  14. 更改表中数据:update 表名
               set 列名=更改值,列名=更改值;
    此做法是将整列更改,若只想更改某几列某几行中的数据,则
    update 表名
    set 列名=更改值,列名=更改值;
    where 表达式(例如id=5,6; 或id=4 and name=“Joe”; );
    上式中,逗号的意思是“或”,表示同时更改id=5和id=6的行。而and为“且”。
  15. 删除表中的某一行数据:delete from 表名 where 表达式;
    delete删除表中数据只能整行删除
  16. 添加列(即新的数据名和及其数据类型):alter table 表名 add 数据名 数据类型;
    以上方法为在数据库的最后增加列,若想指定在某一列后添加,则在最后加上after 列名。若想在第一列前添加,则在最后加上first。
  17. 删除列:alter table 表名 drop 列名;
  18. 修改列类型:alter table 表名 modify 列名 新的列类型 新的列参数;
  19. 修改列名及列类型:alter table 表名 change 旧列名 新列名 新的列类型 新的列参数;
  20. 查看表中所有的列名和列类型:desc 表名;

数据类型

  1. 关于整型的两个参数:
    (1)unsigned
    (2)(m) zerofill
    例如 int(3) zerofill 表示如果输入值为1,则会自动补0为001。
  2. 关于浮点数和定点数的定义:float(M,D) decimal(M,D)
    其中M叫“精度”表示总位数,即去掉小数点所有的位数,D叫“标度”表示小数点右边的位数。
    decimal是将整数部分和小数部分分开存储,会比float精确。
  3. 关于定长型和变长型的字符型的定义:char(M) varchar(M)
    其中字符长度<=M,注意不是字节数,是字符数,一个汉字算一个字符。但char的M<=255,varchar的M<=65535
    char(M)会将输入字符存储在前面,后面用空格补齐至M位。若输入的最后加入空格,再取出时该空格会被删除,而varchar不会。
    而varchar(M)是在前面用一到两个字节存储字符长度,再存储字符,后面不补齐。
    另外,text用来定义文本型,可以存储比较大的文本段,但搜索速度较慢且不能定义默认值。
  4. 关于二进制类型的定义:blob
    用来图像、音频等二进制信息。
  5. 关于日期和时间类型的定义:date time datetime timestamp year
    (1) date类型的表示为:例如’2019-11-3’,取值范围为’1000-01-01’到’9999-12-31’,但定义的默认取值可不在此范围。
    (2) time类型的表示为:例如’17:34:30’。
    (3) datetime类型的表示为:例如’2019-11-3 17:34:30’。
    (4) timestamp类型的表示与datetime一致,但在定义默认值时,可定义一个系统常量CURRENT_TIMESTAMP,其表示取当前时间。
    (5) year类型表示为:例如’2019’,其只占一个字节,因而取值范围为’1901’到’2155’共255种加一种特殊值’0000’。

其他

  • 若出现乱码或输入时出现ERROR 1366,则先在命令行顶部右键属性,看字符集是什么,再输入set names 字符集;
  • where中的比较运算符:in和between
    in(3,4)表示取值为3或4。
    between 200 and 300
  • like子句
    ’ %a ’ 表示以a结尾的数据;
    ’ a% ’ 表示以a开头的数据;
    ’ %a% ’ 表示含有a的数据;
    a ’ 表示三位且中间字母是a的数据;
    a ’ ,’ a ’ 同理。
    例如,select * from table1 where name like ‘%Joe’ ;
  • order by排序
    可以用多个字段来排序。其中ASC为升序,DESC为降序。
    例如,select * from table1 order by date1 ASC;
  • union操作符
    select 列名称 from 表名称 union select 列名称 from 表名称 order by 列名称;
    select 列名称 from 表名称 union all select 列名称 from 表名称 order by 列名称;
    用于查看两张表中的数据。以上第一句是不显示重复数据的,下面那行全部显示

你可能感兴趣的:(mySQL)