Mysql基础语句(持续更新)

 1、创建一张表

命令:

create table 表名(

列名1 数据类型(长度) primary key,

列名2 数据类型(长度) not null

);

2、查看表的详细信息

命令:desc 表名

//desc test_name

3、重命名表名

命令:alter table 旧表名 rename 新表名

//alter table test_name rename tester_name

4、添加列

命令:alter table 表名 add 新列名 类型(长度) not null;

5、修改列

命令:alter table 表名 change 就列名 新列名 新类型(新长度) null;

6、删除列

命令:alter table 表名 drop 列名;

//alter table tesrer_name drop name

7、插入表数据

命令:insert into 表名 (列名1,列名2,列名3......) values (值1,值2,值3......);

//insert into tester_name(name,age)values('xixi',24)

8、修改表记录

命令:update 表名 set 修改内容 where 条件 // where 后面加条件

//update tester_name set  password=123456 where id=1 

9、删除表记录

命令:delete from 表名

//delete from tester_name

10、比较运算符在sql语句中的使用

//select * from students where english>90;

11、select 语句的使用

命令:select *from 表名 where 条件

12、模糊查询

% 匹配所有的字符 __匹配单个字符

//select *from ecs_goods where goods_name like “%邹%”

13、in 在条件语句中的使用 (in 表示在什么里面)

命令:SELECT column_name(s)  FROM table_name  WHERE column_name IN (value1,value2,...)

//select *from ecs_goods where goods_sn in("ECS000139","ECS000140","ECS000141");

14、嵌套语句

举例:select * from ecs_goods where goods_id in (select goods_id from ecs_order_goods); //查询出订单的产品的所有信息

Select *from ecs_users where user_id in (select user_id from ecs_order_info);   //查询出是那些人下的订单

注意:in中的sql语句可以当成条件处理,in括号里面的sql语句只能为一列数据

15、Between and 在条件中使用

操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期

命令:SELECT column_name(s)  FROM 表名  WHERE column_name  BETWEEN value1 AND value2

举例:select *from ecs_goods where shop_price between 4000 and 8000   //查询商品价格在4000到8000之间,有包括4000和8000

注意:使用between and的时候,小的值放前面,大的值放后面

16、把列名自定义为中文或者其他名字

举例:select goods_id as “商品id”,goods_name as “商品名称”,(market_price+shop_price) as “价格总和” from ecs_goods where (market_price+shop_price)>15000   //查询出market_price+shop_price之和大于15000并且展示之和

select goods_id as "商品id",goods_name as "商品名称",(market_price-shop_price) as "价格差"  from   ecs_goods where (market_price-shop_price) > 1000;         //查询2个价格差价大于1000

Select goods_id as "商品id",goods_name as "商品名称",(goods_number*shop_price) as "预估销售额"  from   ecs_goods; //求商品预估销售额

17、排序

命令:Order by 列名 asc   //从小到大排序

          Order by 列名 desc  // 从大到小排序

          Order by 列名      //默认不写,从小到大排序

          select *from 表名 order by 列名

//Select *from ecs_goods order by shop_price asc; (升序)

//Select *from ecd_goods order by shop_peice desc;(降序)

18、count统计函数

命令:SELECT COUNT(*) FROM 表名  //COUNT(*)     //函数返回表中的记录数

           SELECT COUNT(column_name) FROM 表名    //COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入)

            SELECT COUNT(DISTINCT column_name) FROM 表名     //COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目

//select  count(*) from ecs_goods;  // 可以统计条数

//select  count(goods_id) from ecd_goods;  // 可以统计记录条数,但是如果列中包含null,就不能统计null

19、max最大值函数/min最小值函数/平均值函数

命令:select max(列名)from 表名; 最大值

//Select min(shop+peice)  from ecs_goods; 最小值

//Select avg(shop_price) from ecs_goods;  平均值

20、sum求和函数

命令:SELECT SUM(column_name) FROM 表名

举例:select  sum(ckick_count) from ecs_goods;

21、distinct 去掉重复数据函数

命令:SELECT DISTINCT 列名称 FROM 表名称

//select distinst(tname)from teacher;   # 对应的列去掉重复数据

22、group by 分组

合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。

//SELECT gender,sum(gender) AS 姓名统计 from patient GROUP BY gender ORDER BY sum(gender) DESC;

select 类别, sum(数量) as 数量之和   from A    group by 类别

23、where 跟 having 的区分?

(1)没有分组之前可以用where,也可以用having 。

(2)分组之后,只能用having,不能用where

24、左关联

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行

命令:SELECT column_name(s)  FROM table_name1  LEFT JOIN table_name2  ON table_name1.column_name=table_name2.column_name

25、右关联

RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行

命令:SELECT column_name(s)  FROM table_name1  RIGHT JOIN table_name2  ON table_name1.column_name=table_name2.column_name

26、内关联

在表中存在至少一个匹配时,INNER JOIN 关键字返回行

命令:SELECT column_name(s)  FROM table_name1  INNER JOIN table_name2  ON table_name1.column_name=table_name2.column_name



#多表关联查询:

select 

patient.name,patient.age,patient.gender,patient.phone,patient.work_state,patient.quarantine_area,patient.role,patient.job_type,

topic_exam.score1,topic_exam.level_name1,topic_exam.score2,topic_exam.level_name2,topic_exam.score3,topic_exam.level_name3,topic_exam.create_time

FROM patient,topic_exam WHERE patient.id=topic_exam.user_id


#求学生成绩总和

select student_id,sum(number) from score where student_id>=2  group by student_id having sum(number)>170;

#求每个学生的平均成绩

select student_id,avg(number) from score GROUP BY student_id having avg(number)>80;

注意:分组之前运行的条件可以放在where 后面, 分组之后的条件只能放在group by后面。

#列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

select sno from sc where scgrade<60 group by sno having count(cno)>=2

#查询所有学生所有的测评记录

select t.score1,t.level_name1,t.score2,t.level_name2,t.score3,t.level_name3,t.create_time,p.name,p.job_type,p.phone,p.age

from patient p,topic_exam t  where p.id=t.user_id  and p.job_type=5



---复制表数据到新表Oracle

CREATE TABLE GZ_STOCK_OF_DAY0306 as SELECT * FROM GZ_STOCK_OF_DAY where stock_time=to_date('2024-03-05','yyyy-mm-dd')

 其中stock_time=to_date('2024-03-05','yyyy-mm-dd'),与date操作关系最大的就是两个转换函数:to_date(),to_char()

to_date() 作用将字符类型按一定格式转化为日期类型:

具体用法:to_date('2004-11-27','yyyy-mm-dd'),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。

如;to_date('2004-11-27 13:34:43', 'yyyy-mm-dd hh24:mi:ss') 将得到具体的时间


下面是几种SQL语句limit使用方法:

1、select * from Customer LIMIT 10;--检索前10行数据,显示1-10条数据;

2、select * from Customer LIMIT 1,10;--检索从第2行开始,累加10条id记录,共显示id为2....11;

3、select * from Customer limit 5,10;--检索从第6行开始向前加10条数据,共显示id为6,7....15;

4、select * from Customer limit 6,10;--检索从第7行开始向前加10条记录,显示id为7,8...16。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 基础知识: 1.数据库的连接mysql -u -p -h-u 用户名-p 密码-h host主机 2:库级知识2....
    网络安全自修室阅读 1,449评论 0 1
  • 一、数据库操作: 1.1 创建数据库: create database student; 1.2 删除数据库: ...
    __71db阅读 775评论 0 0
  • 数据库基础知识 数据库客户端MySQL作为数据库服务器来运行,任何满足mysql通信规范的软件都可以作为客户端来连...
    littlexjing阅读 888评论 0 2
  • 1.1、常用数据库包括:Oracle、MySQL、SQLServer、DB2、SyBase等 1.2、Navica...
    NOX_5d2b阅读 3,331评论 0 0
  • mysql的查询、子查询及连接查询 一、mysql查询的五种子句 where(条件查询)、having(筛选)、g...
    时芥蓝阅读 662评论 0 3