关系型数据库:存储在磁盘上 读取数据速度因为有Io,慢 可以持久化存储、
mysql SQLserver
记录:name age sex
刚哥 24 男
非关系型数据库:
存储在内存中 读取数据快 不能持久化
radis mongodb
记录:{“刚哥”:{"age":24,"sex":男}
区别: 关系型数据库能够通过各个字段来找到 刚哥
非关系型数据库只能够通过键值“刚哥”来找到
连接数据库:
mysql 客户端连接服务端时的完整指令
myql -h 127.0.0.1 -P 3306 -u root -p
SQL语言:
存储引擎 innodb 支持事务(原子性,一致性,隔离性,持久性)******
查看引擎:show engines;


查看数据库: show databases;
创建数据库: create database db1 charset utf8; (设置编码格式可以不写,默认)
使用数据库: use db1;
删除数据库: drop database db1;
创建表: create table stu(id int ,name char(16)) engine=innodb(搜索引擎 可以不写默认 );
查看当前数据库下所有的表: show tables;
查看创建包的格式: show create table stu ;
查看表结构: desc stu
新增记录: insert into stu values(1,“海狗”) ,(2,“你好”);
insert into stu (id ,name)values(1,“海狗”)(2,“你好”);
查记录: select * from stu ; select * from stu where id =1;
修改记录: update stu set name ="拉拉" where id =3;
删除记录: delete from stu where name="海狗";
删除所有记录: truncate table stu ;
数据类型:
数值: (默认都是有符号创建的 ,只能取正数有符号的是 create table stu(id int unsigned)
create table stu(id int unsigned) 只是取值范围不同(整型)
create table stu(id float(60,30) 小数点后30位,小数点前30位

日期: create table stu(d1 year ,d2 date ,d3 datetime);
insert into stu (now(),now(),now()); now () 是mysql 内置函数 获取当前时间的
字符串:
create table stu(name char(10)) 10代表10个字符宽度 一个汉字1个字符 3个字节 一个英文1个字符 3个字节

枚举和集合:

select @@sql_mode 查看当前会话的模式 宽松模式 不能要 超出数据范围出错也允许
select @@global.sql_mode 查看所有会话的模式
更改模式:
set session sql_mode='STRICT_TRANS_TABLES' ;修改当前会话的模式为严格
set global sql_mode='STRICT_TRANS_TABLES' ; 修改当前服务的模式为严格 需要重新登录 关闭服务后就额没有啦
永久修改在 my.cnf 文件中修改
看图片

其他字符类型:

约束:
非空:not null create table stu(id int ,name char(16) not null )
默认值: create table stu(id int ,name char(16) default "fdfja" )
唯一: unique create table stu(id int unique ,name char(16) not null ) 不能有重复
主键:primary key create table stu(id int primary key ,name char(16) not null ) 不为空且唯一
一个表中必须有一个主键
自增:auto_increment create table stu(id int auto_increment ,name char(16) not null )

被折叠的 条评论
为什么被折叠?



