• MYSLQ数据库 day 1


    啥是SQL?

      据库的组成部分,其中数据库管理系统可以接收一些命令,对数据文件进行添加、删除、修改、查询等操作。那么这些命令就是 SQL .

      SQL:(Structured Query Language)是结构化查询语言缩写。是一门专门与数据库管理系统打交道的语言。

      SQL语言:是关系型数据库的标准语言, 其主要用于存取数据,查询数据,更新数据和管理数据库系统等操作。

      具体可以把SQL分为4个部分:

    数据控制语言 ( DCL): 主要用于控制用户的访问权限。其中GRANT语句用于给用户增加权限,REVOKE语句用于收回用户的权限

    数据定义语言(DDL):DROP、CREATE、ALTER等语句;数据库定义语言。主要用于定义数据库,表,视图,索引和触发器等。CREATE语句主要用于创建数据库,创建表,创建视图。ALTER语句主要用于修改表的定义,修改视图的定义。DROP语句主要用于删除数据库,删除表和删除视图等。

    数据操作语言(DML):INSERT、UPDATE、DELETE语句;数据库操作语言。主要用于插入数据,更新数据,删除数据。INSERT语句用于插入数据,UPDATE语句用于更新数据,DELETE语句用于删除数据.

    数据查询语言(DQL):SELECT语句。主要用于查询数据。


    1.数据库

    *1.创建 
    #create database 库名;
    2.使用数据库 #use 库名; 3.查询当前库下所有的表 #show tables; #show database; -- 显示所有数据库
    *4.删除 #drop database 库名;


    2.表操作

    *1.创建
    #create table 表名(
    #  字段1 数据类型 约束条件,
    #  字段1 数据类型 约束条件,
    #  )
    
    *2.删除
    #drop table t1;
    
    3.修改表
    #ALTER TABLE t1 add id int not null PRIMARY key ; -- 添加字段
    #ALTER TABLE t1 MODIFY salary double(10,3) not null DEFAULT 10; -- 修改字段类型与约束条件
    #ALTER TABLE t1 CHANGE salary sal double(10,3) not null DEFAULT 10; --修改字段名称和类型与约束条件
    #ALTER TABLE t1 DROP COLUMN sal; -- 删除指定字段
    #RENAME table t1 to t5;-- 改变表名称
    
    4.查看    
    #* select * from t1; -- 查询表中数据
    #desc t1; -- 查看表结构
    #show create table t1; -- 显示表的创建信息
    
    5.复制表
    #create table t2 select * from t1; -- 复制表结构和表数据
    #* create table t3 LIKE t1; -- 只复制表结构


    3.数据操作

    1.增
    #INSERT into t2(name,age) VALUES('小三',11); -- 指定字段插入
    #INSERT into t2 VALUES('凤',13,2.5); -- 整表字段插入
    #INSERT into t2 VALUES('凤',13,2.5),('凤',13,2.5),('凤',13,2.5),('凤',13,2.5),#('凤',13,2.5);
    #--插入多条
    #insert into t1 SELECT id,name from t2; -- 复制表数据
    2.删
    #delete from t2 where age = 1113;
    3.改
    #update t2 set name ='祝小凤' , salary = 100 where age =13;
    4.查
    #select * from T1;
    
    1.简单查询
    #-- 查询所有
    #select * from person; 
    #--查询指定字段
    #select name,age FROM person;
    #-- 别名+字段运算
    #select p.name,p.salary,p.salary+p.salary*0.1 as 'sum' from person as p
    #-- 去重复查询
    #select DISTINCT salary,name from person; 
    
    2.条件查询
    #-- 逻辑运算符 < > <= >= != <> =
    #-- is null ,is not null
    #-- and OR ()
    #SELECT * from person where salary >5000 or ( age <=30 AND NAME ='');
    
    3.区间查询
    #SELECT * FROM person where salary >=5000 and salary<=10000;
    #-- 推荐使用 :
    #--ps:前后包含
    #SELECT * FROM person where salary between 5000 and 10000;
    
    4.集合查询 in not in
    #SELECT * FROM person where age = 20 or age = 23 or age =30 ;
    #SELECT * FROM person where age not in(20,23,30);
    
    
    5.模糊查询 like
    #SELECT * FROM person where name LIKE '%月'; -- 以什么结尾
    #SELECT * FROM person where name LIKE '月%'; -- 以什么开头
    #SELECT * FROM person where name LIKE '%月%'; -- 包含
    #SELECT * FROM person where name LIKE '_l%'; -- "_"表示占位符
    
    6.排序 
    #select * from person ORDER BY salary ASC,age desc;
    #-- 强制中文[排序
    #select * FROM person ORDER BY CONVERT(name USING GBK) ;
    
    7.聚合函数
    #select MAX(salary) from person;
    #select MIN(salary) from person;
    #select AVG(salary) from person;
    #select SUM(salary) from person;
    #select COUNT(*) from person;
    
    8.分组查询 GROUP BY HAVING
    #select count(id),dept_id,avg(salary) from person GROUP BY dept_id HAVING avg(salary) >=5000 ;
    #where 与 having区别:
    #执行优先级从高到低:where > group by > having 
    #1. Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。
    #2. Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数
    
    9.分页查询 LIMIT
    #SELECT * FROM person LIMIT 2,2
    
    10.正则表达式
    #SELECT * FROM person where name REGEXP '^a';
    #SELECT * FROM person where name REGEXP 'n$';
    #SELECT * FROM person where name REGEXP '.a';
    #SELECT * FROM person where name REGEXP '[a,e,n]';
    #SELECT * FROM person where name REGEXP '[^alex]';
    #SELECT * FROM person where name REGEXP 'a|e';
    #SELECT * FROM person where name REGEXP '^w.*i$';
    
    11. SQL 语句关键字的执行顺序
    #执行顺序: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY ->limit  


    4.权限 

    #create user 'alex'@'127.0.0.1' IDENTIFIED by '123'; -- 创建用户
    #grant SELECT,UPDATE,DELETE ON db1.* to 'alex'@'127.0.0.1';
    #GRANT all PRIVILEGES ON db1.* to 'alex'@'127.0.0.1'; -- 所有权限
    #FLUSH PRIVILEGES; -- 刷新权限    
    #update mysql.user set password=password('123456') where user='root';
  • 相关阅读:
    RDIFramework.NET ━ .NET快速信息化系统开发框架4.4 员工(职员)管理
    (八大方法、逐层深入,有你一定没见过的)使用INSERT语句向表中插入数据
    国土档案管理信息系统【档案著录】地籍类档案著录
    RDIFramework.NET ━ .NET快速信息化系统开发框架4.3 平台主界面
    [推荐][提供下载](Excel):常用函数公式及操作技巧系列文章【共十篇】
    RDIFramework.NET ━ .NET快速信息化系统开发框架4.6 角色管理模块
    CSS长度单位参考
    Ajax 和 XML: 五种常见 Ajax 模式
    Web2.0岁月:使用AJAX技术的十大理由
    AJAX的安全性及AJAX安全隐患
  • 原文地址:https://www.cnblogs.com/chongdongxiaoyu/p/8711947.html
Copyright © 2020-2023  润新知