注意事项
SQL 语句中,每条语句都应该以;
结尾; SQL 语句中,并不区分大小写,也不区分单引号双引号,都是一样的; SQL 语句中,数据库名称、表名称、字段名称并不能直接使用 SQL 中的关键字,如果非要使用,则需要将冲突的名字使用 “ ` ”(反引号)括起来;
注释
单行注释可以使用#
注释符,#
注释符后直接加注释内容,格式如下:
SELECT DISTINCT product_id, purchase_price FROM Product;
单行注释可以使用--
注释符,--
注释符后需要加一个空格,注释才能生效,格式如下:
SELECT DISTINCT product_id, purchase_price FROM Product;
多行注释使用/* */
注释符。/*
用于注释内容的开头,*/
用于注释内容的结尾,多行注释格式如下:
SELECT DISTINCT product_id, purchase_price FROM Product;
库的操作
进入数据库
mysql -u用户名 -p
:输入指令后敲回车,此时如果设置了密码,则需要输入密码,如果没有设置密码,则直接敲回车即可登入;
显示数据库
show databases;
:查看所有已创建的数据库;select database();
:查看当前所操作的数据库;
show create database 库名称
:查看创建数据库的 SQL 语句;
创建数据库
create database 库名称;
:创建数据库,如果该数据库已存在,则会报错;create database if not exists 库名称;
:创建数据库,如果该数据库已存在,则不会报错;
使用数据库
use 库名称;
:当你需要使用数据库时,你需要选择一个数据库来操作;
删除数据库
drop database 库名称;
:删除数据库,如果该数据库不存在则报错,数据库中的内容也将会被全部删除,所以谨慎操作;drop database if not exists 库名称;
:删除数据库,如果该数据库不存在并不会报错,数据库中的内容也将会被全部删除,所以谨慎操作;
常用数据类型
整型与浮点型
数据类型 大小 说明 对应 C 类型 BIT[ (M) ] M指定位数,默认为1 二进制数,M 范围从 1 到 64,存储数值范围从 0 到 2^M - 1 char[] TINYINT 1 字节 signed char SMALLINT 2 字节 short int INT 4 字节 int BIGINT 8 字节 long long int FLOAT(M, D) 4 字节 单精度,M 指定长度,D 指定小数位数,会发生精度丢失 float DOUBLE(M, D) 8 字节 double DECIMAL(M, D) M / D 最大值 + 2 双精度,M 指定长度,D 表示小数点位数,精确数值 char[] NUMERIC(M, D) M / D 最大值 + 2 双精度,M 指定长度,D 表示小数点位数,精确数值 char[]
字符串类型
数据类型 大小 说明 对应 C 类型 VARCHAR (SIZE) 0 - 65535 字节 可变长度的字符类型,m 代表了最多可以存储的字符个数,而不是字节个数,可变长的意思是,当 m 为 255,但你只存了 5 个字符,那么这个变量的大小就是 5 * 字符大小; char[] TEXT 0 - 65535 字节 长文本数据 char[] MEDIUMTEXT 0 -16777215 字节 中等长度文本数据 char[] BLOB 0 - 65535 字节 二进制形式的长文本数据 char[]
日期类型
数据类型 大小 说明 对应 C 类型 DATETIME 8 字节 范围从 1000 到 9999 年,不会进行时区的检索及转换,常用 MYSQL_TIME TIMESTAMP 4 字节 范围从 1970 到 2038 年,自动检索当前时区并进行转换 MYSQL_TIME
表的操作
创建表
create table 表名称(变量名称1 变量类型, 变量名称2 变量类型, 变量名称3 变量类型...);
在当前数据库中创建一张表,表中的字段为后面括号中所设置的,且顺序固定,如果表存在,则报错;create table if not exists 表名称(变量名称1 变量类型, 变量名称2 变量类型, 变量名称3 变量类型...);
在当前数据库中创建一张表,表中的字段为后面括号中所设置的,且顺序固定,如果表存在并不报错;comment
:可以为表中字段添加说明信息,示例如下:
create table stu_test (
id int ,
name varchar ( 20 ) comment '姓名' ,
password varchar ( 50 ) comment '密码' ,
age int ,
sex varchar ( 1 ) ,
birthday timestamp ,
amout decimal ( 13 , 2 )
) ;
查看表
show tables;
:查看当前所操作的数据库中的所有表;describe / desc 表名称;
:查看指定表的结构,也就是存放了什么变量、变量有什么属性等等;show create table 表名称
:查看创建表的 SQL 语句;
删除表
修改表
alter table 表名称 rename 新名称;
:将指定表的名称修改为新名称;rename table 表名称 to 新名称;
:将指定表的名称修改为新名称;alter table 表名称 add 字段名称 字段属性 after 表中字段;
:在表中某一字段后面添加新的字段;alter table 表名称 drop 表中字段;
:删除表中指定字段的那一列;alter table 表名称 change 字段名称 新名称 字段属性;
:重命名表中的某一列;alter table 表名称 change 字段名称 字段名称 字段属性 after 表中字段;
:将表中的某一字段移动到表中的另一字段后面,也就是调整字段顺序;alter table 表名称 change 字段名 字段名 要修改的属性;
:对表中字段的属性进行修改;
数据库导入
mysql -uroot -p < 数据库语句文件
:在 vim 中编写好数据库创建、表创建、数据插入等操作语句后,可以直接导入 MySQL 中,然后这些语句就会被依次执行;