DDL数据定义语言

库定义

1 创建数据库
mysql> create database school;
mysql> create schema sch;
mysql> show charset;
mysql> show collation;
mysql> CREATE DATABASE test CHARSET utf8;
mysql> create database xyz charset utf8mb4 collate utf8mb4_bin; 建库规范
1.库名不能有大写字母
2.建库要加字符集
3.库名不能有数字开头
4.库名要和业务相关 建库标准语句
mysql> create database xuexiao charset utf8mb4;
mysql> show create database xuexiao; 2 删库和提桶跑路
mysql> drop database xuexiao; 3 修改
mysql> SHOW CREATE DATABASE school;
mysql> ALTER DATABASE school CHARSET utf8;
注意:修改字符集,修改后的字符集一定是原字符集的严格超集 4 查询库相关信息(DQL)
mysql> show databases;
mysql> show create database xuexiao;

表定义

1 创建
create table stu(
列1 属性(数据类型、约束、其他属性),
列2 属性,
列3 属性
) 2 建表
mysql> USE school;
CREATE TABLE stu(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
sname VARCHAR(255) NOT NULL COMMENT '姓名',
sage TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
sgender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别' ,
sfz CHAR(18) NOT NULL UNIQUE COMMENT '身份证',
intime TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间'
) ENGINE=INNODB CHARSET=utf8 COMMENT '学生表'; 建表规范:
1. 表名小写
2. 不能是数字开头
3. 注意字符集和存储引擎
4. 表名和业务有关
5. 选择合适的数据类型
6. 每个列都要有注释
7. 每个列设置为非空,无法保证非空,用0来填充 3 删表
mysql> drop table t1; 4 修改
在stu表中添加qq列
mysql> ALTER TABLE stu ADD qq VARCHAR(20) NOT NULL UNIQUE COMMENT 'qq号'; 在sname后加微信列
ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE COMMENT '微信号' AFTER sname; 在id列前加一个新列num
ALTER TABLE stu ADD num INT NOT NULL COMMENT '数字' FIRST; 把刚才添加的列都删掉
ALTER TABLE stu DROP num;
ALTER TABLE stu DROP qq;
ALTER TABLE stu DROP wechat; 修改sname数据类型的属性
ALTER TABLE stu MODIFY sname VARCHAR(128) NOT NULL; 将sgender 改为 sg 数据类型改为 CHAR 类型
ALTER TABLE stu CHANGE sgender sg CHAR(1) NOT NULL DEFAULT 'n'; DESC stu; 5 表属性查询
mysql> use school;
mysql> show tables;
mysql> desc stu;
mysql> show create table stu; mysql> CREATE TABLE ceshi LIKE stu;

DCL数据控制语言

grant  # 授权
revoke # 取消授权

DML数据操作语言

insert

--- 最标准的insert语句
INSERT INTO stu(id,sname,sage,sg,sfz,intime)
VALUES
(1,'zs',18,'m','123456',NOW()); --- 省事的写法
INSERT INTO stu
VALUES
(2,'ls',18,'m','1234567',NOW()); --- 针对性的录入数据
INSERT INTO stu(sname,sfz)
VALUES ('w5','34445788'); --- 同时录入多行数据
INSERT INTO stu(sname,sfz)
VALUES
('w55','3444578d8'),
('m6','1212313'),
('aa','123213123123');

update

DESC stu;
SELECT * FROM stu; UPDATE stu SET sname='zhao4' WHERE id=2;
#### 注意:update语句必须要加where ####

delete

删除id=3的这条数据
DELETE FROM stu WHERE id=3; 全表删除:
DELETE FROM stu
truncate table stu;
区别:
delete: DML操作, 是逻辑性质删除,逐行进行删除,速度慢.
truncate: DDL操作,对与表段中的数据页进行清空,速度快. 伪删除:用update来替代delete,最终保证业务中查不到(select)即可
1.添加状态列
ALTER TABLE stu ADD state TINYINT NOT NULL DEFAULT 1 ; 2. UPDATE 替代 DELETE
UPDATE stu SET state=0 WHERE id=6; 3. 业务语句查询
SELECT * FROM stu WHERE state=1;

最新文章

  1. Linux0.11内核--fork进程分析
  2. Cell的一些坑: UITableViewCell宽度,在iphone5的时候是320,在iphone6的时候为啥也是320?
  3. React子组件与父组件传值
  4. Selenium2学习-027-WebUI自动化实战实例-025-JavaScript 在 Selenium 自动化中的应用实例之三(页面滚屏,模拟鼠标拖动滚动条)
  5. ylbtech-Unitity-cs:计算阶乘值
  6. zz存储系统中缓存的三种类型
  7. android省电开发之cpu降频
  8. java语句与流程控制
  9. discuz_style_default.xml 修改
  10. 谈谈HashMap与HashTable
  11. MAC地址表配置与绑定
  12. 痞子衡嵌入式:ARM Cortex-M内核那些事(3)- 功能模块
  13. vue打开新页面
  14. Python常用模块之time模块
  15. centos7安装python3.6后导致防火墙功能无法正常工作的解决办法
  16. shell基础:位置参数变量
  17. [转][译] Closures in Lua - Lua中的闭包
  18. MySQL binlog group commit--commit stage
  19. 【转】python中json.loads与eval的区别
  20. linux报错 find: missing argument to `-exec'

热门文章

  1. AcWing 204. 表达整数的奇怪方式
  2. CentOS7-磁盘扩容(LVM-非空目录拓展卷空间大小)
  3. linux命令-------find命令之exec
  4. Archive for required library:’ WebRoot/WEB-INF/Mytag.tld’in project ‘TagTest’ cannot be read or is not a valid ZIP file
  5. Kotlin Coroutine(协程): 一、样例
  6. 一道内部ctf文件包含题
  7. layim即时通讯实例各功能整合
  8. Java基础00-第一个程序2
  9. 第八篇 -- 对数据库mysql进行连接并压测
  10. 第十篇 -- 学习C++宝典2005版