数据库语言
数据集database是存储和管理数据的仓库,可以永久保存,是保存数据的一种方式,SQL是一门编程语言
- 常见的数据库
- mysql: 开源免费
- Oracle :收费,安全性高
- DB2: IBM公司,收费,银行、政府部门常用
- SQL Server: Microsoft公司收费,只能运行在Windows上
- 登陆sql:
mysql -u用户名 -p密码 -h主机名 -P端口号
- 退出: exit或者quit命令
数据库结构化查询语言SQL
- 注意事项
- mysql不区分大小写,可单行或多行书写,以分号结尾
- 注释方式:
- --: 单行注释
- # :单行注释
- /**/:多行注释
- 分类
- 数据定义语言DDL:定义数据库对象,库,表,列
- 数据操作语言DML:对表记录进行更新
- 数据查询语言DQL:查询表记录
- 数据控制语言DCL:定义数据库访问权限和安全级别
- 数据库三范式:创建冗余较小,结构合理的数据库
- 第一范式: 具有原子性,列要做到不可拆分
- 第二范式: 一张表只能表述一件事情
- 第三范式: 消除传递依赖,表中信息如果能被推导,就不要设计,保持空间最省
- 数据库反三范式:通过增加冗余、重复数据提高数据库性能
1.数据定义语言DDL
- 创建数据库
-- 默认字符集是Latin1 create database 库名 if not exists characer set 字符集;
-- 使用库 use 库名; - 修改数据库
alter database 库名 character set 字符集;
- 删除数据库
drop database 库名;
- 创建表
create table 表名 if not exists ( 字段名称 字段类型, 字段名称 字段类型, ...); -- 创建和 test1 结构相同的表 create table test2 like test1;
- 查看表
-- 查看所有表 show tables; -- 查看创建表的语句 show create table 表名; -- 查看其他库的所有表 show tables from 库名;
-- 查看表结构 desc 表名; - 删除表
drop table 表名;
- 修改表
-- 修改名称 rename table 旧表名 to 新表名; -- 修改字符集 alter table 表名 character set 字符集; -- 添加列 alter table 表名 add column 字段名 字段类型; -- 修改列类型 alter table 表名 modify column 字段名 字段类型; -- 修改列名 alter table 表名 change 旧列名 新列名 字段类型;
-- 删除列
alter table 表名 drop 列名; - 查看版本
-- 方式一:登录到MySQL服务器 select version(); -- 方式二: 登录cmd命令提示符 mysql --version -- 或 mysql --V
- 复制表
--仅仅复制表的结构 create table 表名 like 被复制的表; -- 复制表的结构和数据 create table 表名 select * from 被复制的表; -- 复制表的部分数据 create table 表名 select 复制部分 from 被复制的表 where 筛选条件; -- 仅仅复制表的某些字段 create table 表名 select 复制部分 from 被复制的表 where 无法满足的条件(如0);
2.数据操作语言DML
- 增加
insert into 表名(字段名,字段名,...) values (字段值,字段值,...);
- 修改
update 表名 set 字段名 =字段值,字段名=字段值,... where 筛选条件;
- 删除
-- delete 删除是逐条删除,不改变自增条件,有返回值,返回的是删除的行数,可以回滚,添加筛选条件 delete from 表名 where 筛选条件; -- truncate 删除是整表删除,删表之后在重新创建,因此有自增的表经删除后起始值为1,不能添加筛选条件,没有返回值,不能回滚,效率高 truncate table 表名;
3. 数据控制语言DCL
- 创建用户
create user '用户名'@'主机名' identified by '密码'; --在任意电脑上都可登录的用户 create user '用户名'@'%' identified by '密码';
- 用户授权
grant 权限1,权限2, ... on 数据库.表 to '用户名'@'主机名' -- 赋予所有库表所有权限 grant all on *.* to 'root'@'localhost';
- 查看用户权限
show grants for '用户名'@'主机名';
- 删除用户
drop user '用户名'@'主机名';
- 查找用户
select 用户名 from user;
- 数据库的备份与还原
-- cmd下 备份 mysqldump -u用户名 -p密码 数据库名>文件路径 -- 还原 source sql文件地址
浙公网安备 33010602011771号