常用语句:
show create databse school --查看创建数据库的语句
show create table student -- 查看student数据表的定义语句
desc student -- 显示表的结构
较大,约为两倍
innodb 默认使用
myisam 早些年使用
myisam | innidb | |
---|---|---|
事物支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约为两倍 |
myisam 节约空间,速度较快
innodb 安全性高,事物的处理,多表多用户操作
所有数据库文件都在data目录下
本质还是文件存储
MySQL引擎在物理文件上的区别
-
InnoDB 在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
-
MYISAM对应文件
.fram -- 表结构的定义文件
.MYD 数据文件(data)
.MYI 索引文件(index)
设置数据库表的字符编码集
CHARSET=utf8
不设置的话,会是MySQL默认的字符编码
在my.ini中配置默认的编码
character-set-server=utf8
CREATE TABLE IF NOT EXISTS `student`(
`id`INT(4) NOT NULL AUTO_INCREMENT COMMENT `学号`,
`name` VARCHAR(30) NOT NULL DEFAULT `匿名` COMMENT `姓名`,
`pwd` VARCHAR (20) NOT NULL DEFAULT `123456` COMMENT `密码`
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
修改表名:alter table 旧表名 rename as 新表名
增加表的字段:alter table 表名 add 字段名age 列属性int(10)
修改表的字段(重命名,修改约束):
alter table teacher modify age varchar(11) --修改约束
alter table teacher change age age1 int(1) --字段重命名
删除表的字段:alter table teacher drop age1
删除表:drop table if exists teacher1
注意点:
-
所有字段名使用``
-
注释-- /**/
-
sql大小写不敏感,建议小写
-
所有的符号全部用英文
重点(增删改查)dml
插入: insert into `grade` (`gradename`) values ('大一'),('大二')
-- 一一对应
修改: updata `student` set `name` ='hp',`email`='1325452@qq.com' where id = 1;
--等于号可以改为大于,小于等于等.不指定条件则修改所有数据
不等于<>或!=
between 2 and 4 区间[2,4]
and相当于&&
or相当于||
`name`可以使具体的具体的值也可以是变量
删除: delete from `student` where id=1;
不写条件则全部删除
truncate:完全清空一个数据库表,表的结构和索引约束不会变
truncate `student`
truncate和delete的区别
相同点:都能删除数据,不会删除表结构
不同点:
delete: 自增不归零,使用innodb重启数据库归零,存在内存中断电及失,myisam存在文件中,不会丢失
truncate:自增归零
DQL查询数据
(Data Query Language:数据查询语言)
select * from student -- 查询全部的学生
select 字段 from 表
select `StudentNo`,`StudentName` from student -- 查询指定字段
select `StudentNo` as 学号,`StudentName` as 学生姓名 from student
SELECT distinct `StudentNo` from result--去重
select version()--查版本号(函数)
select 100*3-1 as 计算结果 --计算(表达式)
select @@auto_increment_increment--查询自增的步长(变量)
select `StudentNo`,`StudentResult`+1 as `提分后` from result
模糊查询.
运算符:
-
is null
-
is not null
-
between
-
like
-
in
-