网站左侧悬浮导航,seo搜索优化邵阳,在线crm系统价格,h5培训DQL
数据查询语言#xff08;Data Query Language#xff0c;DQL#xff09;是数据库操作语言的重要组成部分#xff0c;主要用于从数据库中检索数据#xff0c;核心关键字为SELECT。以下从语法结构、常见操作及示例等方面详细介绍#xff1a;
语法结构
DQL 的标准语法…DQL
数据查询语言Data Query LanguageDQL是数据库操作语言的重要组成部分主要用于从数据库中检索数据核心关键字为SELECT。以下从语法结构、常见操作及示例等方面详细介绍
语法结构
DQL 的标准语法为SELECT select_list INTO new_table FROM table_source WHERE search_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression 。各个部分的含义如下 SELECT用于指定要查询的列select_list可以是具体的列名、表达式、函数等。如果要查询所有列可用*表示。例如SELECT column1, column2 FROM table_name; 表示从table_name表中选择column1和column2这两列的数据SELECT * FROM table_name; 则返回table_name表中的所有列数据。INTO可选子句用于将查询结果存储到一个新表new_table中。比如SELECT column1, column2 INTO new_table FROM old_table; 会将old_table中的column1和column2列数据查询出来并存储到新表new_table中。FROM指定查询数据的来源表可以是单个表或多个表用于联表查询。如FROM employees表示从employees表中获取数据。WHERE筛选条件子句用于限制返回的行只有满足search_condition条件的行才会被查询出来。例如SELECT * FROM products WHERE price 100; 会从products表中筛选出价格大于 100 的产品记录。GROUP BY用于对查询结果进行分组group_by_expression是分组的依据列。比如SELECT department, COUNT(*) FROM employees GROUP BY department; 会按照department列对employees表中的记录进行分组并统计每个组的记录数量。HAVING用于对分组后的结果进行过滤search_condition是过滤条件。它与WHERE的区别在于WHERE是对原始数据行进行筛选而HAVING是对分组后的结果进行筛选。例如SELECT department, AVG(salary) AS average_salary FROM employees GROUP BY department HAVING AVG(salary) 5000; 先按department分组并计算每个组的平均工资然后筛选出平均工资大于 5000 的组。ORDER BY对查询结果进行排序order_expression是排序的依据列可使用ASC升序默认或DESC降序指定排序方式。如SELECT * FROM students ORDER BY age DESC; 会将students表中的记录按年龄降序排列。 MySQL 中SELECT FROMWHEREGROUP BYHAVINGORDER BY,LIMIT 插入值 eg表 基本查询- SELECT 字段1字段2........ FROM 表名
SELECT * FROM 表名
查询指定字段:
SELECT name,worknoage from emp 查询所有字段 select * form emp //比起原来的更慢会 设置别名
SELECT 字段1 [AS 别名1]字段2 [AS 字段2].....from 表名
这里的AS可以省略
select workaddress ‘工作地址’ from emp 去除重复记录 SELECT DISINCT xxx FROM 表名
select distinct workaddress from emp 条件查询
SELECT 字段列表 FROM 表名 WHERE 条件列表 select * from emp where age 88 select * form emp where idcard is null select * form emp where idcard is not null select * form emp where age 15age20
select * form emp where age between 15 and 20 select * form emp where gender ’女’ and age 25 select * form emp where age in (18,20,40) select * from emp where like ‘__’//_模糊匹配单个字符%任意多个字符 select *from emp where idcard like ‘%X’ //查询身份证以X结尾的人 聚合函数 countmaxminavgsum
select 聚合函数字段列表 from 表名
select count(*) form emp select count(idcard) form emp //因为有一个null select avg(age) from emp select max(age) from emp select sum(age) from emp where workaddress ‘西安’ 分组查询
SELECT 字段列表 FROM 表名 [where 条件] GROUP BY 分组字段名 [分组后的过滤条件]
where不能使用聚合函数 而having 可以
select gender, count(gender) from emp group by gender select gender, avg(age) from emp group by gender select workaddress ,count(*) as cnt from emp where age45 group by workaddress having cnt 3 排序查询
asc 升序 desc 降序 SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1 字段2 排序方式2.....
select * from emp order by age asc select * from emp order by entrydate desc select * from emp order by age asc, entrydate desc 分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引查询记录数
如果查询第一页起始索引可以省略
select * from emp limit 10 //查询第一页10个数据 select * from emp limit 1,10 //查询第二页10个数据 一整个的顺序是
select intot from where group by having order by limit DCL:
数据控制语言Data Control LanguageDCL是 SQL 语言的一个重要组成部分主要用于管理数据库中的用户权限和事务处理确保数据库系统的安全性和数据的完整性。
管理用户 查询用户 USE mysql
SELECT * from user 创建用户
创建用户只能在当前主机localhost下访问 密码123456 CREATE USER ‘用户名’ ‘主机名’ INDENTIFIED BY ‘密码’ 创建用户 heima可以在任意主机访问密码123456 修改用户密码 ALTER USER ‘用户名’ ‘主机名’ IDENTIFIED WITH mysql_native_password BY ‘新密码’ 删除用户
DROP USER’用户名’’主机名’ 权限控制 查询权限 SHOW GRANT FOR ‘用户名’’主机名’
show grants for ‘heima’’%’ 表示只能链接进入数据库
授予权限 GRANT 权限列表 ON 数据库名.表名 TO ‘用户名’’主机名’
grant all on itcast.* to ‘heima’’%’
之前 使用命令之后 撤销权限
REMOVE 权限列表 ON 数据库名.表名 FROM ‘用户名’’主机名’
remove all on itcast.* from ‘heima’’%’