标签:odi 基本运算符 evel trie having 复制 增强 建立 建表
管理员身份打开cmd
net start mysql //启动mysql服务
net stop mysql //关闭mysql服务
//用户名为root,密码为1234
mysql -uroot -p1234
mysql -uroot -p //回车再密文输入密码更安全
//远程登录
mysql -h127.0.0.1 -uroot -p
mysql --host=127.0.0.1 --user=root --password=1234 //完整写法
//退出
exit
quit
//备份
mysqldump -uroot -p1234 数据库名 > 保存路径
//还原, 登录并进入对应数据库
source 文件路径
结构化查询语言,定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为”言“,mysql中只有登录后输入的才被视为sql语句
Create
创建表(最后一列不能加逗号)
table tableName(
? 列名1 数据类型1,
? ...
? 列名n 数据类型n
);
常见数据类型
复制表
Retrieve
Update
Delete
对表中的数据进行限定,保证数据的正确性、有效性和完整性
分类
操作
创建表时添加约束,跟在数据类型后
create table stu(id int, name varchar(20) not null);
create table stu(id int, . . . , constraint (外键名) foreign key 外键列名 references 主表名(主表列名称)); #添加外键
删除约束,唯一和主键约束删除特殊
alter table stu modify name varchar(20);
alter table stu drop index name; #删除唯一约束
alter table stu drop primary key; #删除主键
alter table 表名 drop foreign key 外键名; #删除外键
创建表后添加约束
alter table stu modify name varchar(20) not null;
alter table stu add constraint (外键名) foreign key 外键列名 references 主表名(主表列名称)); #添加外键
级联操作
select 字段列表 from 表名 where 条件列表 group by 分组字段 having 分组后的条件 order by 排序 limit 分布限定
列表用逗号分开,可以用*代指查询所有
基础查询
条件查询
where子句后跟条件
运算符
> 、<、<=、>=、=、<>(不等于符号,也可以用 != )
between...and... (也可以用and实现)
in(集合) (也可以用or实现)
select * from stu where age in (15, 25, 35);
is null,is not null (null值不能用基本运算符判断)
and &&,or ||,not ! (推荐使用字母符号)
like (模糊查询)
占位符:_ 表示单个任意字符;* 表示多个任意字符;
select * from stu where name like ‘__%‘; #查询姓名至少有两个字的人
排序查询
聚合函数
把一列数据作为一个整体进行计算,结果为单行单列,如count(math)
count、max、 min、 sum、 avg
自动排除null值,count时不方便可以用ifnull解决或选择非空的列或count(*)
select count( ifnull( english, 0 ) ) from stu;
分组查询
分页查询
select * from a, b; 结果是ab两张表的笛卡尔积,两个集合所有组成情况
内连接查询
查询两张表交集部分
隐式内连接:select a.name from a, b where a.bid = b.id; bid和id可以加引号
一般在from后面的表后加别名
显式内连接:
select * from table1 inner join table2 on 条件;
select * from table1 join table2 on 条件;
外连接查询
左外连接(常用,可以代替右外连接)
select * from table1 left [outer] join table2 on 条件;
查询左表所有数据以及其与右表交集部分
右外连接
select * from table1 right [outer] join table2 on 条件;
查询右表所有数据以及其与左表交集部分
子查询
查询中嵌套查询,子查询加括号
用户和授权信息存在自带的mysql数据库中,先use mysql切换到mysql数据库,主机名为%时表示可以在任意主机上登录
管理用户
添加用户:create user ‘用户名‘@’主机名‘ identified by ‘密码‘;
删除用户:drop user ‘用户名‘@’主机名‘;
更改用户:update user set password = password(‘新密码‘) where user = ‘用户名‘;
? set password for ‘用户名‘@’主机名‘ = password(‘新密码‘);
查询用户:select * from user;
忘记管理员密码
管理权限
查询权限:show grants for ‘用户名‘@’主机名‘;
授予权限:grant 权限列表 on 数据库名.表名 to ‘用户名‘@’主机名‘;
? 权限包括:select, delete, update
? grant all on 星号.星号 to ‘用户名‘@’主机名‘; (通配符)
撤销权限:revoke 权限列表 on 数据库名.表名 to ‘用户名‘@’主机名‘;
多表之间的关系
范式
设计数据库时,需要遵循的一些规范
概念
函数依赖:如果通过A能确定B,则称B依赖于A,A可以是多个属性组成的属性组
完全函数依赖:通过属性组A中所有的属性才能确定B
部分函数依赖:cefp属性组A中部分的属性就能确定B
传递函数依赖:A确定B,B确定C,则C传递依赖于A
码:一张表中,一个属性或属性组被其他所有属性完全依赖,则其为该表的码
主属性:码中所有属性
非主属性:其他属性
第一范式1NF
每一列都是不可分割的原子项
第二范式2NF
1NF基础上,非码属性必须完全依赖于候选码(消除部分依赖)
第三范式3NF
2NF基础上,任何非主属性不依赖于其它非主属性(消除传递依赖)
标签:odi 基本运算符 evel trie having 复制 增强 建立 建表
原文地址:https://www.cnblogs.com/whteway/p/12040614.html