数据库语言

数据集database是存储和管理数据的仓库,可以永久保存,是保存数据的一种方式,SQL是一门编程语言

  • 常见的数据库
    • mysql:  开源免费
    • Oracle :收费,安全性高
    • DB2: IBM公司,收费,银行、政府部门常用
    • SQL Server: Microsoft公司收费,只能运行在Windows上
  • 登陆sql:
    mysql -u用户名 -p密码 -h主机名  -P端口号
  • 退出: exit或者quit命令

数据库结构化查询语言SQL

  • 注意事项
    • mysql不区分大小写,可单行或多行书写,以分号结尾
    • 建议关键字大写,表名,列名小写
    • 每条命令根据需要进行缩进或换行,f10格式化
    • 注释方式:
      • --: 单行注释
      • # :单行注释
      • /**/:多行注释
    • 分类
      • 数据定义语言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文件地址

 

posted @ 2021-04-14 18:51  forever_fate  阅读(203)  评论(0)    收藏  举报