MYSQL
1.sql语句
(1)sql语句:结构化查询语言-->写一段只能被数据库识别的语句,可以对数据库中的数据进行增删改查操作
(2)sql语句的组成:
- DML:数据操作语言-->数据库中的增删改(insert,delete,update)
- DDL:数据定义语言-->对数据库中的表结构进行操作(alter,create,drop等)
- DCL:数据控制语言-->数据库中的权限设置以及事务提交和回滚(granted,revoke,commit,rollback)
- DQL:数据查询语言-->数据库中的查询(select)
2.数据库中的数据类型
1 整数:int(数字):数字通常是指整数的位置(该位数数字并不会影响int的取值范围)
2 小数:double(数字1,数字2):
例如:double(8,2):表示该数的整数位最多为6位,二小数位保留两位
3 日期类型:date
4 字符串类型:
- char(长度)
- varchar(长度)
注意:上面两个类型都表示字符串的长度最多为多少,区别在于char是一个不可变的字符串类型,也就是说括号里的长度写了多少,存进去的数据如果不足该长度,会自动补全长度.而varchar是一个可变的字符串类型,也就是存多少,占多少.
例如:char(12):如果存的长度是4,则会补全12个空格
varchar(12):如果存的是长度4,那就是4
3.创建表
语法:create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名n 数据类型
)
注意:最后一个字段的数据类型后面不需要添加逗号!
4.添加数据
insert
语法1:
insert into 表名(字段1,字段2,字段n) values(字段1的值,字段2的值,字段n的值)
语法2:
insert into 表名 values(字段1的值,字段2的值,字段n的值)
语法1的好处是,插入数据的时候,可以自行选择插入数据的字段顺序,且碰到没有费控约束条件/有默认约束字段时,我们可以选择不手动插入该字段的值
语法2的表名后面没有接对应的字段,这就要求使用者插入数据的时候,数据的值必须要和表中字段出现的顺序一一对应上,因此语法1使用看起来更加的灵活
5. 查询:
- select 字段1,字段2,字段n from 表名(where 条件是)
- select * from 表名(where 条件是)
注意:select在查询数据的时候,需要加where条件进行数据筛选,否则如果数据量过大,每次在查询所有数据,会过度占用系统资源(实际开发时,查询一定要注意添加where或者分页查询数据)
查询语句还支持算术运算符(+,-,*,/,%),关系运算符(<,>,=,!=,<>,>=,<=)
6. null值
注意:判断是不是null需要使用is或者is not
7. and(&&)和or(||)
8. 修改:
语法:
update set 字段1=值1,字段2=值2...字段n=值n (where 条件是)
注意:update在更新数据的时候,一定记得添加where,否则整个表中的数据都会被修改
9. 删除
- delete:删除表中所有的数据(可以回滚)
注意:delete在删除的时候,也需要添加where条件,否则会将表中所有的数据都删除
语法:
update from 表名 where 条件
- drop:删除表结构(不能回滚)
语法:
update table 表名
- truncate:删除表中的所有数据(不能回滚)
语法:
truncate table 表名
注意:不能与where连用
10.数据库事务的提交和回滚
- commit:手动提交事务
- rollback(只回滚到上一次提交的地方)
mysql数据库默认的情况下是自动提交数据的,也就是我们对数据库进行增删改查操作,会直接影响到数据库中的数据,如果我们设置了数据库不自动提交数据,name进行增删改查后,就需要我们手动commit提交,否则,并不会真实影响数据库中的数据
set autocommit=0; -- 设置数据库不自动提交
set autocommit=1; -- 设置数据库自动提交
11. 在dos命令开启事务
begin;
或者start stransaction;
步骤:
mysql -uroot -p密码
use 数据库名
begin;或者stransaction;
写sql语句
rollback或者commit
12.修改表结构
- 新增字段
语法:
alter table 表名 add 新增字段名 数据类型 - 修改字段的数据类型(不能在有数据的情况下去修改)
alter table 表名 modify 字段名 新的数据类型
13 查看表结构
desc 表名
约束条件
- 主键约束:primary key 非空且唯一
- 主要使用于id字段(序号字段)
- 一个表中最多只能有一个主键
- 多个字段可以联合起来共同做主键(复合主键)
- 非空约束:not null 非空 - 必填的字段
- 默认约束:default 有默认值
- 唯一约束:unique key 唯一 - 不能重复存在的内容
- 自增长约束:auto_increment 会自动增长 - 通常和主键绑定,设置自增
- 自增的值我们可以设置,但是不建议,默认自增1
- 外键约束:foreign key 用于多张表 - 建立外键的表之间数据是互相关联约束的
- innodb才支持外键设置
- InnoDB
- MyISAML