update mysql.user set authentication_string=password('123456') where user='root' and Host='localhost'; --修改用户密码
create table xxx (
字段名 字段属性
);
show tables;
describe student;
insert into xxx () values (); 逗号隔开 , 字符串用引号
--注释
#注释
/*
多行注释
*/
数据库xxx语言
DDL=定义
DML=操作
DQL=查询
DCL=控制
update xxx
set abc=1
where xx=22
delete from xxx where 如果不加条件,直接清空表格
操作数据库
创建数据库
create databases xxx
删除数据库
drop database xxx
使用数据库
use xxx
如果你的表名或字段是一个特殊字符,就需要带``
查看数据库
show databases
数据库的列类型
数值
tinyint 1个字节
smallint 2个字节
mediumint 3个字节
int 4个字节
bigint 8个字节
float 浮点数 4个字节
double 浮点数 8个字节(精度问题!)
decimal 字符串形式的浮点数 金融计算的时候,一般是使用decimal
字符串
char 字符串 固定大小的0-255
varchar 可变字符串 0-65535 常用
tinytext 微型文本 2^8-1
text 文本串 2^16-1 保存大文本
时间日期
date yyyy-mm-dd 日期
time hh:mm:ss 时间格式
datetime yyyy-mm-dd hh:mm:ss 最常用的时间格式
timestamp 时间戳 1970.1.1 到现在的毫秒数! 也较为常用
year 年份表示
null
没有值,未知
== 不要使用null进行运算,结果为null==
-
数据库的字段属性(重点)
Unsigned:
- 无符号的整数
- 声明了该列不能声明为负数
zerofill:
- 0填充的
- 不足的位数,使用0来填充,int(3),5 —005
自增:
- auto_increment
- 通常理解为自增默认+1
- 通常用来设计唯一的主键
- 可以设置步长和初始值
非空:null not null
- 假设设置为not null,如果不给它赋值,就会报错!
- null,如果不填写值,默认就是null
默认
- 设置默认的值!
- 例如sex,默认值为男,如果不指定该列的值
常用命令
show create database school
show create table student
desc student
MYISAM | INONODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大,约为2倍 |
常规使用操作:
- MYISAM :节约空间,速度较快
- innodb:安全性高,事务的处理,多表多用户操作
在物理空间存在的位置
所有的数据库文件都存在data目录下
本质还是文件的存储!
MYSQL 引擎在物理文件上的区别
- Innodb在数据库表中只有一个*.ibd文件,以及上级目录下的ibdata1文件
- MYISAM对应文件
- *.idb 表结构的定义文件
- *.myd 数据文件(data)
- *.myi 索引我呢见index
设置数据库表的字符集编码
1.character set = utf8
不设置的话,会是mysql默认的字符集编码(不支持中文)
可以在my,ini 设置character-set-server=utf8
2.6修改删除表
–修改表
alter table teacher rename as teacher1;
–增加表的字段
alter table teacher1 ADD age INT(11);
–修改表的字段(重命名,修改约束)
alter table teacher1 mmodify age varchar (11);–修改约束
alter table teacher1 change age age1 int(1) ;–修改字段重命名
–删除表的字段
alter table teacher drop age1;
–删除表
drop table if exists teacher1 ;
注意点
- `` 字段名,使用这个包裹!
- 注释 - - /**/
- sql关键字大小写不敏感
- 符号用英文体
3. mysql数据管理
3.1外键(了解即可)
创建表时没有添加外键约束
alter table `student`
add constrain `FK_xxx` foreign key (`gradeid`) references `grade`(`gradeid`);