sql-2-DDL

DDL-定义数据库

1、对database操作

1、创建数据库
create database [if not exist] 库名;
CREATE DATABASE `shop` CHARACTER SET utf8 COLLATE utf_general_ci;

2、删除数据库
drop database [if exist] 库名;

3、使用数据库
use 库名;
use `库名`;   --库名特殊时需要用``

4、查看数据库
show database;

2、对table操作

-- 创建表单
CREATE TABLE IF NOT EXISTS `student`(
	`sno` INT(20) NOT NULL AUTO_INCREMENT COMMENT '学员id',
	`sname` VARCHAR(20) NOT NULL,
	`ssex` VARCHAR(20) NOT NULL,
	`sbirthday` DATETIME,
	UNIQUE KEY(`sno`)
)ENGINE=MYISAM DEFAULT CHARSET=utf8;

  --增
create table if not exists `studentexit` (
	字段 int(10) 列属性;
)engine=innodb default charset=utf8;

 --删
drop [if exists]table 表名; 

--改
alter table 表名 rename as 新表明;  
   
--查
show tables;  

3、对fields操作

--对字段修改前面都要加上
alter table 表名

--增
add 字段名 约束和列数属性 

--删
drop 字段名;

--改
modify 字段名 约束和列属性;  
change 字段名 新字段名 [约束];
注意:modidy侧重于修改,不能改名字
	 change侧重于改变,可以对这个字段全方位修改
 
--查
use 表名;
describe 表名; 

4、简化写代码过程

show create table 表名;展示之前的table怎么创建的命令行,可以直接修改这个命令行简化时间。

5、概念

1、数据类型
  • 数值
tinyint 1个字节
smallint 2个字节
mediuint 3个字节
int   4个字节
big  8个字节
float   4个字节
double  8个字节
decimal   字符串类型的浮点数,不会有金融损失
  • 字符串
char 0~255字节
varcahr 0~65535字节
tinytext 0~2^8 字节
text 2^16 
  • 时间和日期
data YYYY-MM-DD:日期格式
time HH-mm-ss:时间格式
datatime YYYY-MM-DD HH-mm-ss
timestamp  时间戳,1970.1.1到现在的毫秒数
year 年份
  • null
用null计算必得null
2、字段属性
  • unsigned

    • 无符号整数,即不能为负数
  • zerofill

    • 规定数为5位,但只输入了5,会变成00005。
  • auto increment

    • 每次记录都会在前一次数据上增加1,可以在高级设置更改一般都设置成数据的序列作为index,且只能为整数
  • 项目成品的必要字段

    • verson 乐观锁

    • is_delete 伪删除

    • gmt_create 创建时间

    • gmt_update 更新时间

3、数据库引擎innodb,myisam
ENGINE=INNODB DEFAULT CHARSET=utf8  --就是这个
myisam innodb
事务处理 不支持 支持
锁定方式 表锁定 行锁定
外键约束 不可读取其他数据库 可以
全文索引 支持 不支持
储存空间 1kb 为myisam的两倍
  • myisam:节约空间,速度快,且支持全文索引。

  • innodb:安全性高,且工作时只行锁定支持多人合作,支持事务处理。

  • 数据库引擎原理

    • 以idb文件存在
      数据库引擎是mysql中一种保存和读取数据的引擎。
  • 设置数据库的字符集编码

    • 默认:latin1,不支持中文,而我们需要中文

    • 定义表单时加上charset=utf8

    • 或者在my.ini中加入character-set-server=utf8

posted @ 2021-06-07 17:40  Coder-Wang  阅读(50)  评论(0编辑  收藏  举报