【MySQL】基础使用(二):常用 SQL 语句大全

冷不防 2022-12-18 06:54 232阅读 0赞

1.库操作

登录数据库

  1. mysql -h {
  2. ip} -u {
  3. username} -p{
  4. password} -P {
  5. port}
  6. # -h ip默认是 localhost
  7. # -p 指定密码时中间不要空格,比如 -p123456
  8. # -P 端口默认是 3306

  1. create database 库名

  1. drop database 库名

  1. show databses

  1. use 库名

2.表操作

  1. create table 表名( 列名 类型 约束

PS:约束是为了数据完整性,常见的有:

  • 主键约束 primary key
  • 非空约束 not null
  • 唯一约束 unique
  • check 约束(自定义条件)

eg

  1. CREATE TABLE t_user (
  2. uid BIGINT AUTO_INCREMENT,
  3. uname VARCHAR(50) NOT NULL,
  4. uage INT NOT NULL,
  5. PRIMARY KEY(uid)
  6. )ENGINE=InnoDB DEFAULT CHARSET=utf8;

  1. drop table 表名

重命名

  1. rename table 旧名 to 新名

列操作

  1. Alter table 表名 add 列名 类型 约束 // 新增
  2. Alter table 表名 drop // 删除
  3. Alter table 表名 change 旧名 新名 dataType // 修改列信息
  4. Alter table 表名 modify 列名 类型 约束 // 列类型修改

索引操作

  1. ALTER table 表名 add PRIMARY KEY (列名) // 添加主键索引
  2. ALTER table 表名 add UNIQUE (列名) // 添加唯一索引
  3. ALTER table 表名 add INDEX (列名) // 添加普通索引
  4. ALTER table 表名 add INDEX (列名1,列名2) // 添加联合索引
  5. show index from 表名 // 查看索引信息
  6. ALTER table 表名 drop INDEX 索引名 // 删除索引

  1. show tables

查看某个数据表信息

  1. describe 表名

3.数据操作

insert

  1. insert into 表(列,列)values ( , )

注:不考虑自增主键

delete

  1. delete from where ...

update

  1. update set 列=值 where ...

select

基本查询

  1. select from where ...

1)单表查询

  1. select 列(+n) (as别名) from (别名) where ... (order by ASC/DESC)

where条件:

  • 逻辑运算符:and / or / not
  • 关系运算符:= / <= / >= 或者 in( , ) / between … and …
  • 模糊查询:like(“%…%”)
  • isNull等

分页查询:

  1. select from limit (page-1)*n,n

2)多表查询

联合查询:

  1. select from 1 ~join 2 on 1.字段= 2.字段
  2. # 这种写法默认是内连接
  3. select from 1,表2 where 1.字段=表2.字段
  • inner join : 内联,返回左右表联结字段都非空的行
  • left join:左联,返回左表所有与右表联结字段非空的行
  • right join:右联,返回右表所有与左表联结字段非空的行
  • outter join:外联,返回左右表所有的行

嵌套查询:

  1. select * from 1 where 1.1 in (select * from 2)
  2. select * from (select from 1 where ...)

集合查询(并集):

  1. select 相同列名 from 1 union select 同列名 from 2

注:union默认去重,union all允许重复

3)聚合函数

  1. select count(列)/sum(列)/max(列)/min(列)/arg(列) from (group by(列)) (having) ...

group by : 将相同的分为一组(一行数据),常配合聚合函数使用

where与having的区别?

where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据。where条件中不能包含聚合函数,可以使用where条件过滤出特定的行。

Having字句与where子句一样可以进行条件判断的,另外Having子句通常用来筛选满足条件的组,即在分组之后过滤数据。条件中经常包含聚合函数,使用having条件过滤出特定的组,也可以使用多个分组标准进行分组。

通常使用group by+having的时候会使用聚合函数,因为分组之后的列要么是聚合函数,要么是group by(列)中的列。

4.视图操作

视图(view),是一种有结构(有行有列),但没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义的,而是从对应的基表(视图的数据来源)中产生的。

对视图的修改,会改变基本表的数据,

  • 单表视图一般用于查询和修改(会改变基本表数据)
  • 多表视图一般用于查询(不会改变基本表的数据)

    —创建视图—
    CREATE VIEW 视图名 AS select语句

    —查看有哪些视图—
    show table status where comment=’view’;

    —从视图中检索数据—
    SELECT 列 FROM 视图名 WHERE 条件

    —删除视图—
    drop VIEW 视图名;

发表评论

表情:
评论列表 (有 0 条评论,232人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Sql语句大全

    前言: 日常工作或学习过程中,我们可能会经常用到某些SQL,建议大家多多整理记录下这些常用的SQL,这样后续用到会方便很多。笔者在工作及学习过程中也整理了下个人常用的SQL,

    相关 SQL 语句大全

    以下SQL语句是从网上查找的,为了温故而知新,和大家共勉之。 \--数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行