持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天,点击查看活动详情
theme: juejin highlight: a11y-dark
SQL语句的写法规范:
1.SQL语句系统命令必需大写,名称小写(我使用时用的小写也可以的)
2.结束分隔符以分号或 \g结束
3.支持折行,但函数或名称或引号不能折行
4.名称不能用关键字或保留字,但如果使用用反引号括起来(``) 例users
一、Mysql登陆与退出
1.登录
(1).mysql -u用户名 -p密码
例:mysql -uroot -proot
(2).mysql -u用户名 -p密码 -P端口号 -D选择的数据库
例:mysql -uroot -proot -P3306 -Dtest
2.退出
(1).quit
(2).exit
(3).\q
3.注释
(1). #注释内容
(2). -- 注释内容
4.修改提示符(Prompt)
(1).进入MySQL写命令
例:mysql>prompt 提示符名称
(2). 登录MySQL 时的命令
例:mysql -uroot -p --prompt=提示符名称
说明:
(1)恢复 prompt mysql>
(2)命令
\u:将提示符修改为MySQL用户名
\h:将提示符修改为主机名称
\D: 将提示符修改为系统时间
\d: 将提示符修改为选择的数据库名称
二、SQL(结构化查询语言 Structrued Query Language)
(1) DDL(数据定义语言):创建数据库,创建表、创建视图等,创建(CREATE),删除(DROP),修改(ALTER)。
(2) DML(数据操作语言):表中的数据的增删改操作,增(INSERT),删除(DELETE),更新(UPDATE)。
(3) DQL(数据从查询语言):表中的数据的查询,查询(SELECT)。
(4) DCL(数据控制语言):用户权限的分配(GRANT)及权限的撤销(REVOKE)。
三、库的操作
1.查看数据库 SHOW DATABASES;
2.创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名 [[DEFAULT] CHARACTER SET [=] 编码];\
例: CREATE DATABASE IF NOT EXISTS test CHARACTER SET=UTF8;
3.查看创建数据库的命令 SHOW CREATE DATABASE 数据库名;\
例: SHOW CREATE DATABASE test;
4.删除数据库 DROP DATABASE [IF EXISTS] 数据库名;\
例:DROP DATABASE test;
5.修改数据库编码 ALTER DATABASE [IF EXISTS] 数据库名称 [DEFAULT] CHARACTER SET [=]编码;\
例:ALTER DATABASE test CHARACTER SET=gbk;
6.选择数据库 USE 数据库名\
例:USE test;
7.查看当前选择的数据库 SELECT DATABASE();
四、数据类型
1.整型
TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT
(1) TINYINT([M]) [UNSIGNED|ZEROFILL]
范围: 大小1个字节(Byte 2^8)
值:
有符号位 -128~127
无符号位(正数 UNSIGNED) 0~255
(2) SMALLINT([M]) [UNSIGNED|ZEROFILL]
范围: 大小2个字节(Byte 2^16)
值:
有符号位 -32768~32767
无符号位(正数 UNSIGNED) 0~65535
(3) MEDIUMINT([M]) [UNSIGNED|ZEROFILL]
范围: 大小3个字节(Byte 2^24)
值:
有符号位 -8388608~8388607
无符号位(正数 UNSIGNED) 0~16777215
(4) INT([M]) [UNSIGNED|ZEROFILL]
范围: 大小4个字节(Byte 2^32)
值:
有符号位 -2147483648~2147483647
无符号位(正数 UNSIGNED) 0~4294967295
(5) BIGINT([M]) [UNSIGNED|ZEROFILL]
范围: 大小8个字节(Byte 2^64)
说明:
UNSIGNED:无符号位,正数ZEROFILL :当显示的长度小于指定长度用0填补,注意如果字段属性是ZEROFILL一定是UNSIGNED(自动添加UNSIGNED)
2.浮点型
(1)FLOAT([M,D]) [UNSIGNED|ZEROFILL]:
单精度浮点数,-3.40e38 ~ 3.40e38
(2)DOUBLE([M,D]) [UNSIGNED|ZEROFILL]:
双精度浮点数,-1.79e308 ~1.79e308
(3)DECIMAL([M,D]) [UNSIGNED|ZEROFILL]
定长浮点
说明: 单精度, 双精度当显示的浮点大于指定的位数四舍五入近似值,定长浮点大于指定的位数警告报错,存精确值
3.字符类型
(1)定长字符:CHAR([M]) (0-255字节,一个字母占一个字节)
(2)变长字符:VARCHAR([M])(0-65535字节)
字符字段最多能存的字符
a.一个字段 最大 65535字节
b.与编码有关
gbk:至多 2个字节
utf8:至多 3个字节 65532/3 =21844字节
c.多个字符字段总长度不能超过 65535字节(21844字节)
(3)TINYTEXT:0-255字节
(4)TEXT: 0- 65535字节
(5)MEDIUMTEXT :0-16777215字节
(6)LONGTEXT: 0~4294967295字节
说明: CHAR定长字符效果高但占空间,VARCHAR变长字符省空间但效果低,TEXT效率最低
4.布尔类型
a.BOOLEAN
b.TINYINT(1)
5.枚举类型
ENUM:最多65535字节
例如: sex ENUM('man','woman','secret')
四、约束条件
- NOT NULL :不能为空
- DEFAULT :默认值
- [PRIMARY] KEY :主键,一个表中必需有 一个主键,而且主键一定是NOT NULL和不重复
- UNIQUE [KEY]:不重复,唯一型(例如:用户名,邮箱唯一型 ),一个表中可以有多个不重复
- AUTO_INCREMENT:自动增长,如果字段是自动增长一定是主键
五、表结构的操作
1.查看表 SHOW TABLES;
2.查看表结构 (1)DESC 表名; (2) DESCRIBE 表名;(3)SHOW COLUMNS FROM 表名;
例:DESC test;
3.创建表结构
CREATE TABLE [IF NOT EXISTS] 表名称(字段名称(列名称 Field) 数据类型 [字段属性|约束条件],
字段名称(列名称 Field) 数据类型 [字段属性|约束条件],...)[ENGINE=InnoDB DEFAULT CHARSET =utf8];
说明:MySQL引擎 InnoDB,MyISAM (实现外键,事务等效果)
例:CREATE TABLE IF NOT EXISTS test (
id INT(10) NOT NULL KEY AUTO_INCREMENT UNIQUE,
usname VARCHAR(20) NOT NULL,
psword VARCHAR(10) NOT NULL ,
sex ENUM('男','女','保密') DEFAULT '保密'
)ENGINE=InnoDB DEFAULT CHARSET =utf8;
4.查看表的创建代码 SHOW CREATE TABLE 表名;
例:SHOW CREATE TABLE test;
5.添加字段
(1)添加单个字段
ALTER TABLE 表名
ADD 字段名称 数据类型[字段属性|约束条件][FIRST|AFTER 字段名称];\
例:ALTER TABLE test
ADD fid INT(10) NOT NULL DEFAULT 1 AFTER id;
(2) 添加多个字段
ALTER TABLE 表名
ADD 字段名称 数据类型[字段属性|约束条件][FIRST|AFTER 字段名称],
ADD 字段名称 数据类型[字段属性|约束条件][FIRST|AFTER 字段名称]......;\
例:ALTER TABLE test
ADD fid INT(10) NOT NULL DEFAULT 1 AFTER id,
ADD class INT(10) NOT NULL DEFAULT 1 FIRST usname;
6.删除字段
ALTER TABLE 表名
DROP 字段名称,
DROP 字段名称......;
例:ALTER TABLE test
DROP fid ,
DROP class;
7.修改字段
ALTER TABLE 表名
MODIFY 字段名称 数据类型 [字段属性|约束条件] [FIRST|AFTER 字段名称];
例: ALTER TABLE test
MODIFY fid int(10) NOT NULL DEFAULT 2;
8.修改字段名称
ALTER TABLE 表名
CHANGE 旧字段名称 新字段名称 数据类型 [字段属性|约束条件][FIRST|AFTER 字段名称];
例:ALTER TABLE test
CHANGE fid cid INT(10) NOT NULL DEFAULT 0 AFTER id;
9.添加默认值 ALTER TABLE 表名 ALTER 字段名称 SET DEFAULT ‘值’;
例:ALTER TABLE test
ALTER cid SET DEFAULT 3;
10.删除默认值
ALTER TABLE 表名
ALTER 字段名称 DROP DEFAULT;
11.添加主键
ALTER TABLE 表名
ADD PRIMARY KEY(字段名称);
12.删除主键
ALTER TABLE 表名
DROP PRIMARY KEY;
说明:如果主键字段有AUTO_INCREMENT,必需先删除AUTO_INCREMENT才能删除主键。
13.添加唯一性
(1).ALTER TABLE 表名
ADD UNIQUE KEY|INDEX(字段名称);
(2).ALTER TABLE 表名
ADD [CONSTRAINT 约束名称] UNIQUE KEY|INDEX(字段名称);
14. 删除唯一性
ALTER TABLE 表名
DROP KEY|INDEX 唯一性的约束名称;
说明:添加唯一性没有约束名称,那默认将字段名称作为约束名称。
15.重命名表名
(1) ALTER TABLE 表名
RENAME [AS|TO] 新表名;
(2) RENAME TABLE 旧表名TO 新表名;
16.自增重置
ALTER TABLE 表名
AUTO_INCREMENT = 值;