SQL基础

作者: 账号已被注销 | 来源:发表于2021-05-10 00:26 被阅读0次
  • 连接mysql:mysql -h localhost -P 3306 -u root -p

  • 查看所有数据库:show databases
// 默认情况下有4个数据库
information_schema // 保存了mysql的元数据信息 表名,字段名等
mysql // 保存了mysql的用户信息,权限信息等
performance_schema // 保存了mysql运行时的日志信息
test // 测试数据库 ( 可以自己折腾的数据库 ) 
  • 新建数据库:create database database1
  • 删除数据库:drop database database1
  • 使用数据库:use database1
  • 查看当前使用的数据库:select database()

  • 查看所有数据表:show tables
  • 新建数据表:
-- create table 表名(字段1 数据类型(数据长度) 默认值 约束条件 字段备注,字段2,字段3...) 表属性
create table table1(
  id int not null primary key auto_increment comment '这个是id,主键,自增长' ,
  name varchar(64) comment '这个是备注' ,
  username varchar(64) unique comment '这个是用户名,唯一'  ,
  status tinyint(1) not null default 1 comment '这个是状态,非空',
  scope int comment '这个是备注',
) comment '这个是表注释';
  • 查看表结果:desc table1
  • 删除数据表:drop table table1

  • 添加一条记录:
-- insert into 表名values(值1,值2...)
insert into table1 values(001,'张三','zhangsan',0,90);

-- insert into 表名 (字段1,字段2...) values(值1,值2...)
insert into table1(id,name,username,status,scope) values(002,'李四','lisi',0,70);

-- insert into 表名 (字段2,字段3...) values(值1,值3...)
insert into table1(username,status,scope) values(003,'wangwu',1,50);
  • 添加多条记录:
-- insert into 表名 (字段1,字段2...) values(值1,值2...),(值1,值2...)
insert into table1(id,name,username,status,scope) 
values 
(001,'张三','zhangsan',0,90),
(002,'李四','lisi',0,70),
(003,'王五','wangwu',1,50),
(004,'张三','zhangsan2',0,82),
(005,'李四','lisi2',0,77),
(006,'王五','wangwu2',1,53);
  • 修改数据:
-- update 表名 set 字段1 = 值1,字段2 = 值2 条件;
update table1 set status = 0 where id = 001;
  • 删除数据
-- delete from 表名 条件
delete from table1 where id = 003;

  • 查询数据
-- select 字段1,字段2 from 表名
select id,username from table1;

-- select 字段1 as 别名,字段2 as 别名 from 表名
select id as a,username as b from table1;

-- select * from 表名
select * from table1;

-- select * from 表名 条件
select * from table1 where id = 001;

-- select * from 表名 条件 分页
select * from table1 limit 1;

-- select * from 表名 排序(asc正序,desc倒序) 分页
select * from table1 order by id desc limit 1;

-- 查询某个字段并去重:select distinct 字段 from 表名 
select distinct name from table1 ;
  • where 条件
-- 查询 id = 1 的数据
select * from table1 where id = 1;
-- 查询 id > 1 的数据
select * from table1 where id > 1;
-- 查询 id < 1 的数据
select * from table1 where id < 1;

-- 查询 id > 1 并且 id < 10 的数据
select * from table1 where id > 1 and id < 10;
-- 查询 id > 1 或者 id < 10 的数据
select * from table1 where id > 1 or id < 10;
-- 查询 id = 1 或者 id = 5 或者 id = 10 的数据
select * from table1 where id in (1,5,10);

-- 查询 username= 'zhangsan' 的数据
select * from table1  where username = 'zhangsan';
-- 查询 username 以 'zhang' 开头的数据
select * from table1  where username like 'zhangsan%';
-- 查询 username以 'zhang' 结尾的数据
select * from table1 where username like '%zhangsan';
-- 查询 username包含 'zhang' 的数据
select * from table1 where username like '%zhangsan%';

  • 聚合函数
-- 查询总数 select count(*) from 表名
select count(*) from table1; --
-- 求和 select sum(字段名) from 表名
select sum(scope) from table1; --
-- 求平均数 select avg(字段名) from 表名
select avg(scope) from table1; --
-- 求最小值 select min(字段名) from 表名
select min(scope) from table1; --
-- 求最大值 select max(字段名) from 表名
select max(scope) from table1; --
  • order by 分组查询
    • where 是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面不能使用“聚合函数” ( 查询时过滤 )
    • having 是一个过滤声明,所谓过滤是在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用“聚合函数” ( 查询完成后过滤 )
-- select 字段 from 表名 gropu by 字段
select *,sum(scope) as sum1 from table1 group by name; --

-- select 字段 from 表名 gropu by 字段 having 字段
-- where不能和聚合函数一起使用,所以使用having
select *,sum(scope) as sum1 from table1 group by name having sum1 > 100; --

-- where后面之所以不能使用聚合函数是因为where的执行顺序在聚合函数之前
如 : select  *,sum(scope ) from table1   group by table1.name where sum(scope )>100;
-- having既然是对查出来的结果进行过滤,那么就不能对没有查出来的值使用having
如 :select  id,name from table1   having scope >90;
  • limit 分页查询
-- select * from 表名 条件 分页 条数
select * from table1 limit 1;

-- select * from 表名 条件 分页 页数,条数
select * from table1 limit 1,1;
  • alter 修改表结构
-- alert table 表名 操作方式 字段 数据类型 约束条件
alter table table1 add age unique;

-- alert table 表名 操作方式 字段 数据类型 约束条件
alter table table1 update age varchar(11) not null unique;

写作不易,如果这篇文章对你有帮助,阅读之后别忘记点个赞哦!

小白程序员,若有不对的地方欢迎各位大佬指出~

相关文章

  • sql

    sql-基础sql-基础查询-1sql-基础查询-2sql-更新 概览 数据库(Database,DB):将大量数...

  • SQL基础及元数据获取(数据类型,表的属性)

    1、SQL基础应用 ①.SQL的介绍SQL标准:SQL-92、SQL-99SQL_MODE:都是为了保证SQL语句...

  • MySql手动注入

    information_schema SQL基础 1.1 什么是sql? SQL(structured query...

  • MySQL

    数据类型 sql基础 数据库表 SQL SELECT 语句: SQL WHERE 子句: SQL AND & OR...

  • SQL语句

    SQL基础应用 SQL语句自动补全 SQL的介绍 SQL-92标准SQL-99标准 image SQL常用分类 表...

  • SQL高级运用

    -- =================================sql基础补充==============...

  • mysql的用法2

    -- =================================sql基础补充==============...

  • Oracle学习-day26:SQL语句

    一、SQL语言基础 1.什么是SQL语言? (1)SQL, Structured Query Language, ...

  • oracle 基础复习

    1. SQL 基础 https://mubu.com/doc/3ANPHhveeK 2. PL/SQL 基础 ht...

  • mysql手工注入

    SQL基础 1.1 什么是sql? SQL(structured query language),即结构化查询语言...

网友评论

      本文标题:SQL基础

      本文链接:https://www.haomeiwen.com/subject/jmfmdltx.html