mysql指令

104 阅读7分钟

3

一。SQL指令:

DDL:数据定义指令,数据定义语言:(用来完成数据库的创建,删除和修改表结构等)
create DQL:数据查询语言(对数据库中的表进行查询)
select DML:数据操作语言(对表中的数据进行增删改等操作)
insert TPL:事务控制语言(拥有管理数据库中的事务)
DCL:数据控制语言(定义数据库的访问权限,安全级别等)

二.sql写法规则

每条语句结束必须都有分号结束 sql不区分大小写 ’-- ‘,#是单行注释 /* */是多行注释。
三.注意事项 MySQL在创建之后会自动创建4个库,不能随便修改。 1.information_schema:是虚拟库,不占用系统空间,存储数据库启动之后的参数 2.mysql:存储用户权限的系统 3.performa_schema:用于收集数据库服务参数等 4.sys:用于开发者查询性能问题的库

四。sql语句

  1. create database 库名 charset=编码格式 (创建数据库)
  2. show databases(查询所有数据库)
  3. show create databa 库名:(查询指定数据库)
  4. alert database 库名 character set 编码 (改变编码格式)
  5. use 库名 (切换数据库)
  6. select database (查看当前数据库)
  7. drop database 库名(删除指定数据库)

五数据类型:

(1)字符串类型:
  • 1.char(n):最大可存255个字符,长度固定,n为显示的字符
  • 2.varchar():最大可储存65535个字符,长度可变。
  • char查询效率高。varchar长度可变,节省磁盘资源
  • enum:在指定的数据中选择一个数据(单选)
  • set:在指定的数据中选择一个或多个数据(多选)
(2)数值类型
  • tinyint 整数(1字节)
  • smallint 整数类型(2字节)
  • mediumint 整数类型(3字节)
  • int 整数(4字节)
  • bigint(8字节)
  • float(m,d)单精浮点数,保存小数点后面有6到7位(m表示数据总长度,保留的小数位)
  • double(m,d)双精度点数,保留小数点后15位 浮点数保存时存在精度丢失。
(3)时间类型:
  • year(年)
  • time(时分秒)
  • date(年月日)
  • datetime()这个也是时间类型,表示什么记不清了 写入时间必须用引号
表: 表是在库文件之下的,类似于excel表格的一种文件。
  • 表的创建 creat table 表名(字段名多个字段名用逗号分开)
  • 写入文件 insert into 表名 values(插入内容,每个字段的内容用逗号分离)当插入多个内容时每个内容用括号括起来,并且用逗号进行分离。
  • replace into 跟 insert into功能类似,不同点在于:replace into 首先尝试插入数据到表中,
  1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据;
  2. 否则,直接插入新数据。
  • 修改字段名 alter table 表名 change 旧的字段名 新的字段名 数据类型
  • 添加字段名 alert table 表名 add 字段名 数据类型 after
  • 修改表名 alert table 旧的表名 rename 新的表名
  • 修改字段类型alter table 表名 modify column 字段名 类型
  • 删除字段名 alter table 表名 drop column 字段名
  • 删除表 drop table 表名
  • javascript
  • 复制代码
清除表数据 delete from 表名 
  • sql
  • 复制代码

truncate table 在功能上,与不带where字句的delete语句相同;二者均删除表中的全部行,但truncate table 比delete速度更快,且使用的系统和事务日志资源少。

truncate 删除表中的所有行,但表的结构及其列,约束,索引等保持不变。新行标识所用的技术值重置为该列的种子。如果想保留标识计数值,轻盖拥delete 。

如果要删除表定义及其数据,请使用drop table 语句。

  • sql
  • 复制代码
查看库下的表 show tables 
  • sql
  • 复制代码
查看表结构 desc(降序)表名,ASC(升序)表名 
  • sql
  • 复制代码
表结构 查看创建表的语句 show create 表名
  • csharp
  • 复制代码
 查看全部据 select *from 表名
  • csharp
  • 复制代码
  查看某个字段的数据 select(字段名) from 表名 
  • csharp
  • 复制代码
  利用where方法查询方法 select *from 表名 where 限制条件
  • markdown
  • 复制代码
 约束条件在创建表栏时使用
 -      not null 该栏下的数据不能为空’
 -      unique 在该栏中数据不能重复
 -      primary key 该栏下数据不能为空,且不能重复
 -      auto_increment 该栏必须有约束条件(该栏下数据不能为空),数据类型为整形,在不插入的条  
下自动向该栏中加数据,数字默认为上一个数据加上一个数值,该值默认为1.
 -     fulltext全文索引。
  • 复制代码
 函数:
    • scss
    • 复制代码
自带函数
  -     avg()求平均
  -     sum()求合计
  -     max()求最大
  -     min()求最小
  -     rank() over 它是跳跃的、间断的排名
  -     rank_number() over 对于每个唯一的行集,将重新开始行号
  -     dense_rank() over 排序数字是连续的、不间断。当有相同的分数时,它们的排名结果是并列
  -     left(name,4)截取左边的4个字符的
  -     right(name,4)截取左边的4个字符
  -     stbstring(name,5,3) 截取name这个字段 从第五个字符开始 只截取之后的3个字符
  -     substring_index('www.baidu.com', '.', 2) 截取第二个 '.' 之前的所有字符
  -     substr(name, 1, CHAR_LENGTH(name)-3) 截取name字段,取除name字段后三位的所有字符
  -     timestampdiff(时间单位,开始时间,结束时间)
  -     date_add(时间,interval 增加的时间)
  -     group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
  -     concat(字符串1, 字符串2,...) 字符串参数用逗号隔开!
  -     concat_ws()函数 和 concat()函数一样,也是将多个字符串连接成一个字符串,但是可以指定分隔符!

返回值: 结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。

注意: 中括号是可选的 -      自定义函数格式 -      delimiter 结束符 -      create func 函数名(传入的数据) returns 数据类型 -      begin -      return 返回的数据 -      end 结束符 -      deliniter -      select 函数()(使用函数)

  • markdown
  • 复制代码
   储存器格式
  -        delimiter 结束符
-        create procedure 存储名(['in','out'] 参数)
  -        begin
      -        存储方式
  -        end 结束符
  -        delimiter
      -     in 传入参数
      -     out 传出参数
          -     call 存储器(使用存储器)
    • sql
    • 复制代码
触发器
  -     delimiter 结束符
  -     create trigger 触发器名 【after,before】 insert on 表名 for each ROW
      -     begin
  -     declare num int(声明一个变量,declare只能用在触发器中);
  -     触发行动
  -     end 结束符
  -     delimiter
  • markdown
  • 复制代码
索引
  -     主键索引
  -     唯一索引
  -     普通索引
  -     当读的操作大于写的操作时建立索引可以提高效率,反过来不建议使用索引。
  -     索引的操作
  -     index 普通索引
  -     unique index唯一索引
  -     primary key 主键索引
  -     fulltext 全文索引
  -     在创建表时在被当作索引的栏加上以上关键字。在表名之前,主键索引在后。
将栏目改成索引栏目,在没有索引的表中加入索引用create index 索引 类型 on 表名(以哪一个字段);
  • sql
  • 复制代码
索引的添加
  -      alter table table 表名 add 索引类型 索引名(索引列表)
  -      在创建表时加入索引的关键字
  • sql
  • 复制代码
索引的删除
  -     drop index 索引名 on 表名
  -     alter table 表名 drop index 索引名    
    • 事务
      • 四大好处
        • 原子性,持久性,隔离性,一致性。
        • 关键字
        • beigin数据的开始
        • rollback事务的回滚
        • commit事务的提交
      • 隔离级别
        • read uncommitted(读取未提交的数据)
        • read committed(读取已提交的数据 )
        • repeatable   read(提交的数据读不到,但可以重复读取,会导致幻想读)
        • serializable(排队读取)
    • 存储引擎
    • InnoDB(MySQL默认的存储引擎,读和写较为平衡)