SQL:结构化查询语言

三大类型

DDL:数据库定义语言
操作对象:数据库、表、视图、索引、存储过程
例子:mysql> show databases;—展示所有数据库
mysql> create database class;—创建数据库
mysql> drop class;
mysql> use class;
mysql> create table t1(id tinyint,name char(6));
mysql> show create table t1\G; 或者 mysql> desc t1;—–查看表
mysql> show tables;
mysql> alter table t2 rename to t3;
mysql> drop table t1; 或者 mysql> drop table class.t3;—-绝对路径与相对路径

DML:数据管理语句
操作对象:数据表的内容(增删改查)
例子:mysql>insert into t1 valuse(111,111);–为所有字段插入数据
mysql> insert into t1 (tinyint_test) values(127);–为某一字段插入数据(其他字段运行为null)
DCL:数据库访问控制语言
作用:控制用户访问权限(grant语句使用)
对用户授权:grant [all/delete/update/select] on [ ./dk. ] to “用户”@”IP / %” identified by “密码”; .—–所有库的所有表 dk.—–dk库的所有表 %—-所有IP地址都允许登录
例子: grant all on . to “root”@”192.168.10.1” identified by “123123”;——–用户不存在,会自动创建。
授权完成记得—-flush privileges—–

数据类型

数据类型

整数型

数据类型
unsigned关键字—-限定无符号(不能为负数)
例子:mysql> create table t4(tiny_test tinyint unsigned,int_test int unsigned);

定义数据类型为整型时,已经分配好数据空间。int(6)只是定义了这个值的显示宽度,并不是限定数值的位数。

浮点数和定点数

数据类型
浮点数:
四舍五入原则:当小数点后面的位数过多则采用四舍五入原则,若导致进位后的结果超出M值,则会报错。
M(精度)表示十进制的数组总个数,D(标点)表示小数点后面的位数。
float(M,D)—占用4字节,只能保证六位数的值的准确性(M<=6)
double(M,D)—占有8字节,只能保证十六位数的值的准确性(M<=16)
例子:create table t5(f float(5,3),d double(13,8));

定点数:
decimal(M,D)—占有M+2字节(M<=65,D<=30保证正确性)

字符串类型

数据类型
注:中文字符使用不同编码格式,占有的字节不同
char(4)表示可以接收4个字符,而不是四个字节

枚举与集合

enum(枚举):只能选择一个值
set(集合):可以选择多个值
例子:create table c2(sex enum(‘m’,’f’),hobby set(‘music’,’book’,’game’));

设置外键(删除、更新)四个选项的含义:
RESTRICT:默认属性,当主表删除对应记录时,先检查外键,如果有则不允许删除
NO ACTION:主表删除对应记录时,先检查外键,如果有则不允许删除
CASCADE:级联,当父表更新、删除时,子表会同步更新删除对应的记录
SET NULL:置空,当父表删除、更新记录时,子表会把对应的字段设置为空(子表的外键字典需要允许为空)

最后更新: 2019年10月05日 10:08

原始链接: https://LiYuanSh.github.io/2019/09/08/运维笔记9-sql/

× 请我吃糖~
打赏二维码