数据库相关的操作
查询出来的数据显示?修改数据库和表的字符集utf8;或者 set names gbk/utf8
查询所有数据库:
show databases;
创建新的数据库;
create database 数据库名;
创建数据库并设置字符集:
create database 数据库名 character set utf8/gbk;
查看数据库的详情
show create database 数据库名;
删除数据库:
drop database 数据库名;
选中数据库
use 数据库名;
修改创建好的字符集
alter database 数据库名 character set utf8/gbk;
表相关的操作
数据库表的引擎:
innodb:支持数据库的高级操作如:事务,外键等
myisam:不支持高级操作,只支持基础的增删改查操作
注意:操作表之前一定要先选中数据库(use 数据库名)
查询所有表:
show tables;
创建表:
create table 表名(字段名 字段类型(字段长度), 字段名 字段类型,...);
查看表详情:
show create table 表名;
创建表指定引擎和字符集
create table 表名(字段1 字段1类型,字段2 字段2类型...)engine=innodb/myisam charset=gbk/utf8
查看表结构(表字段):
desc 表名;
删除表:
drop table 表名;
修改表的相关
1.修改表名:
rename table 原名 to 新名;
2.修改表引擎和字符集:
alter table 表名 engine=innodb/myisam charset=utf8/gbk;
3.添加表字段:
最后添加:alter table 表名 add 字段名 类型;
最前面添加:alter table 表名 add 字段名 类型 first;
某个字段后面添加:alter table 表名 add 字段名 类型 after xxx;
4.删除表字段
alter table 表名 drop 字段名;
5.修改表字段的名称和类型
alter table 表名 change 原字段名 新字段名 新类型;
6.修改字段类型和位置
alter table 表名 modify 字段名 类型 first/(after xxx);
数据相关
1.插入数据
(全表插入)insert into 表名 values(值1,值2,...);
(指定字段格式)insert into 表名(字段1,字段2) values(值1,值2);
2.查询数据(*代表所有字段)
select * from 表名
select 字段1,字段2 from 表名
3.批量插入数据
全表插入)insert into 表名 values(值1,值2,...),(值1,值2,...)..;
(指定字段格式)insert into 表名(字段1,字段2) values(值1,值2),(值1,值2)..;
4.删除数据
delete from 表名 where xxx=xxx;
(删除所有数据) delete from 表名;
5.修改数据
update 表名 set 字段名=xxx where 字段名=值;
6.添加主键约束的字段(主键非空且唯一)
create table 表名 values (字段1 字段1类型 primary key,字段2 字段2类型,....);
7.主键+自增(自增数值只增不减,不会因为删除数据减少,在表中曾出现过的最大值基础上+1)
create table 表名 values(字段1 字段1类型 primary key auto_increment,字段2 字段2类型,....);
8.注释 comment
create table 表名(字段1 字段1类型 primary key auto_increment comment '这是主键',字段2 字段2类型 comment '这是xxx'...);
事务
事务:事务是数据库中执行SQL语句的工作单元,可以保证事务内的SQL要么全部成功,要么全部失败.
1.把数据库的自动提交改为手动提交
2.执行多条sql语句,此时sql会在内存中执行
3.当所有sql在内存中执行完后,手动提交,把多次改动一次性提交到数据库文件中.
1.查看数据库自动提交的状态
show variables like '%autocommit%';
2.关闭和打开自动提交 0:关闭 1:开启
set autocommit=0/1;
3.提交sql执行
commit;
4.回滚指令
rollback;
5.设置回滚点
savepoint 标识
6.回滚到某个回滚点
rollback to 标识
SQL分类
1.删除表并创建一样的空表
truncate table 表名;
truncate drop delete的区别:执行效率 drop>truncate>delete,drop只删除表,truncate是删除表并创建一个空表,delete只是删除数据,自增数值不会清零.
数据类型
1.整数:int(m) bigint(m) m代表显示长度 zerofill(零填充)
create table t_int (num int(5) zerofill);
insert into t_int values(123)
2.浮点数: double(m,d) m代表总长度,d代表小数长度
如:76.123 m=5,d=3
3.字符串: char(n):固定长度 n=10 'abc' 占10个字节 执行效率更高
` varchar(n):可变长度 n=10 'abc' 占3个字节 更节省空间,最大65535
text:可以变长度 最大65535,超过25535建议使用text
4.日期类型: date:保存年月日
time:保存时分秒
datetime:保存年月日时分秒 默认值为null,最大值9999-12-31
timestamp(时间搓):保存年月日时分秒 默认为当前时间,c038-1-19
网友评论