搜尋
首頁資料庫mysql教程MYSQL操作常用命令大全_MySQL

bitsCN.com

 

  归纳总结mysql操作常用增删改查,MYSQL操作大全--SQL必杀技

  MYSQL操作大全--SQL必杀技代码:

  --====================简单的查增删改===========

  --查看学生表的全部数据

  select * from studio

  --插入一个新的学生信息

  insert into studio(st_name,st_sex,st_age,st_add,st_tel) values("黄兰淇",0,36,'南充','13943943334')

  --查看class全部数据

  select * from class

  --向class表增加两条条数据

  insert into class(cl_class,cl_coding,cl_o_time,cl_remark) values('新电实训班','GXA-ncs-001','2008-03-11','都是很优秀的朋友')

  insert into class(cl_class,cl_coding,cl_o_time) values('阿坝师专实训班','GXA-ABSZ-001','2008-03-11')

  --更新一条的数据 条件的重要性

  update class set cl_remark='真的是不错' where cl_id=5

  --删除一条数据 条件的重要性

  delete from class where cl_id=7

  --修改列标题

  select cl_id as '班级主键',cl_class as '班级名称' from class

  select 名字=st_name from studio

  --使用文字串

  select '名字是:',st_name from studio

  --=============条件稍微复杂点的查增删改==============

  --主要涉及到 or and not between in like > ! () = is null is not null

  --查询cl_id 大于 1 的所有信息

  select * from class where cl_id>1

  --使用 or

  select * from class where cl_id10 or cl_class='百杰一班'

  --使用and

  select * from class where cl_id10 and cl_class='百杰一班'

  --使用like 和 %

  select * from class where cl_class like '百杰%'

  select * from class where cl_remark like '%上午%'

  --使用 between

  select * from class where cl_id between 3 and 5

  --使用 between 配合上 not

  select * from class where cl_id not between 3 and 5

  --使用 is not null

  select * from class where cl_remark is not null

  --使用 in

  select * from class where cl_class in('千星一班','百杰二班')

  --=================使用数学运算符======================

  --主要涉及到 + = * /

  --查询Java相关课程分别要上多少周 按照每周5天,每天6节课来计算

  select '结果'=co_num/5/6 from course where co_name in ('Java基础','Java项目入门')

  --==================使用汇总函数 ========================

  --涉及到COUNT SUM AVG MAX MIN

  --查询课时数小于50的课程一共有多少门

  select count(*) from course where co_num

  --查询所有课程一共多少课时

  select sum(co_num) from course

  --计算全部课时费,假设每节课50块钱

  select sum(co_num)*50 from course

  --查询课时最少的课程

  select min(co_num) from course

  --查询课时最多的课程

  select max(co_num) from course

  --查询平均每门课多少课时

  select avg(co_num) from course

  --=================使用数学函数=============================

  --包括求绝对值函数ABS函数、求圆周率函数PI()、求正玄值SIN()函数、求指数函数EXP()等。

  --查询每门课的正弦值

  select sin(co_num) from course

  --查询每门课的绝对值

  select abs(co_num) from course

  --查询每门课课时数 乘以 圆周率 ,具体有什么用我也不知道,反正这好像绝对是8.5杆子都打不到的

  select pi()*co_num from course

  --查询每门课的指数

  select exp(co_num) from course

  --随机返回5个随机生成的数(返回的是0~1之间的随机float值)

  declare @i tinyint

  set @i=1

  while @i

  begin

  select rand(@i) as '随机生成的数' , @i as '当前值'

  set @i=@i+1

  end

  --返回数字表达式并四舍五入为指定的长度或精度 - ROUND

  select round(345.456,-1) as '参数为-1'

  , round(345.456,-2,1) as '参数为-2'

  , round(345.456,0) as '参数为0'

  , round(345.456,1) as '参数为1'

  , round(345.456,2) as '参数为2'

  --================使用日期函数======================

  --DAY()、MONTH()、YEAR()——返回指定日期的天数、月数、年数;

  select day(cl_s_time) as '日' from class --返回天

  select '月'=month(cl_s_time) from class --返回月

  select '年'=year(cl_s_time) from class --返回年

  --DATEADD(datepart,number,date)——在日期上增加给定日期类型的数量;

  select dateadd(yyyy,4,cl_s_time) as '增加4年后' from class --datepart - 年份

  yy、yyyy

  select dateadd(q,2,cl_s_time) as '增加2季度后' from class

  --datepart - 季度

  qq、q

  select dateadd(mm,3,cl_s_time) as '增加3月度后' from class

  --datepart - 月份

  mm、m

  --datepart - 每年的某一日

  dy、y

  --datepart - 日期

  dd、d

  --datepart - 星期

  wk、ww

  --datepart - 小时

  hh

  --datepart - 分钟

  mi、n

  --datepart - 秒

  ss、s

  --datepart - 毫秒

  ms

  --DATEDIFF(datepart,date1,date2)——获取两个日期之间给定的日期类型的数量差(整个函数结果是date2-date1);

  select datediff(mm,cl_s_time,cl_o_time) as '共持续月' from class

  --datepart(datepart,date)——在给定日期基础上返回指定日期类型的值(整数);

  --其实这个等同于DAY、MONTH、和 YEAR 函数

  select datepart(dd,cl_s_time) as '日期' from class

  --GETDATE()——返回当前日期和时间。我们在设计数据库的时候,通常也可能把他作为默认值

  update class set cl_s_time=getdate() where cl_id=6

  select * from class

  Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM

  Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06

  Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16

  Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06

  Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06

  Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06

  Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06

  Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06

  Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46

  Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM

  Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06

  Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16

  Select CONVERT(varchar(100), GETDATE(), 12): 060516

  Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937

  Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967

  Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47

  Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157

  Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM

  Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16

  Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47

  Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250

  Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM

  Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006

  Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16

  Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006

  Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006

  Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006

  Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006

  Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006

  Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49

  Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM

  Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006

  Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16

  Select CONVERT(varchar(100), GETDATE(), 112): 20060516

  Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513

  Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547

  Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49

  Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700

  Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827

  Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM

  Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

  --=============使用字符串函数=====================

  --字符串链接运算符

  select '结果显示' = '班级名称是:' + cl_class + ',班级编号是:' + cl_coding from class

  --使用SUBSTRING函数截取字符串

  select substring(cl_class,1,4) from class

  --从字符串的左边开始返回3个字符

  select left(cl_class,3) from class

  --同理,返回右边的

  select right(cl_class,3) from class

  --返回值的字符数

  select len(cl_class) from class

  --替换

  select replace(cl_class,'实训','强化') from class

  --==============使用系统函数====================

  select host_id()

  --返回工作站标识号

  select host_name()

  --返回工作站所运行的计算机名称

  select db_id()

  select db_name()

  select object_id('Stu_course_ADD')

  --通过名称得到这个服务器对象的服务器ID

  select object_name(151671588)

  --同上相反

  --=======学 云 网-天轰穿-=========

  --首先是 order by 功能 - 排序

  select * from studio order by st_name

  --多排序条件

  select * from studio order by st_name DESC,st_age DESC,st_sex DESC

  --有条件,主要是看下条件和子句的位置

  select * from studio where cl_id=1 order by st_name

  --GROUP BY 子句 功能 - 分组统计

  select cl_id as '班级编号',count(*) as '人数' from studio group by cl_id

  --按宿舍统计年龄平均值

  select ho_id as '宿舍编号',avg(st_age) as '平均年龄' from studio group by ho_id

  --多分组

  select ho_id as '宿舍编号',cl_id as '班级编号',avg(st_age) as '平均年龄' from studio group by ho_id,cl_id

  --有条件,主要是看下条件和子句的位置

  select ho_id as '宿舍编号',avg(st_age) as '平均年龄' from studio where cl_id=1 group by ho_id

  --使用 having 子句 功能 - 指定组或者聚合的搜索条件,通常与group by 子句一起使用,完成分组查询后再进步筛选

  select ho_id as '宿舍编号',avg(st_age) as '平均年龄' from studio group by ho_id having avg(st_age)>35

  --多条件

  select ho_id as '宿舍编号',avg(st_age) as '平均年龄' from studio group by ho_id having avg(st_age)>35 and ho_id>2

  --====学云网-天轰穿-[url]www.ixueyun.com[/url]=======联合查询=======学 云 网-天轰穿-[url]www.ixueyun.com[/url]======

  --使用union子句的查询称为联合查询,功能:将两个以上的查询结果集组合为一个单个结果集,该集中包括所有集中的全部行数据

  --下面我们尝试将多个查询联合起来

  select * from studio where cl_id=1

  union

  select * from studio where ho_id=1

  union

  select * from studio where st_age>=30

  --下面我们继续利用上面的例题,增加上 All 看下效果

  select * from studio where cl_id=1

  union all

  select * from studio where ho_id=1

  union all

  select * from studio where st_age>=30

  --再继续利用,给他加上排序

  select * from studio where cl_id=1

  union all

  select * from studio where ho_id=1

  union all

  select * from studio where st_age>=30

  order by st_id

  --==========连接查询==================

  --连接查询,功能 - 将多个表中的数据查询出来放在一起

  --内连接:使用比较运算符=><....>

  --等值连接,当然就是用等号了,毛病,这也要问

  select * from studio inner join class on studio.cl_id = class.cl_id

  --指明要查询的列(江湖上又称自然连接),并排序

  select st_id as '编号',st_name as '学生姓名',cl_class as '班级名称' from studio inner join class on studio.cl_id = class.cl_id order by st_id

  --使用表别名

  select st.st_name as '学生姓名',st.cl_id as '班级编号',cl.cl_class as '班级名称' from studio as st inner join class as cl on st.cl_id = cl.cl_id

  --不等连接,这个问题很好笑,既然使用等号的是等值连接,那么不等值你说是不是应该是非等于以外的呢?

  --下面我们再连接第三个表,看下是怎么搞滴

  select st.st_name as '学生姓名',st.cl_id as '班级编号',cl.cl_class as '班级名称' ,ho.ho_coding as '所在宿舍编号'

  from studio as st inner join class as cl

  on st.cl_id = cl.cl_id

  inner join hostel as ho

  on st.ho_id=ho.ho_id

  --我们再给他加个条件看下

  --where st.cl_id>2

  --再给他个排序

  --order by st.st_id

  --外连接:

  --与内连接不同的是,内连接至少要有一个同属于两个表的行符合连接条件时才会返回行,外连接会返回符合任意条件的行

  --他的表有主从之分,他用主表中的每行去匹配从表中的,与内连不同的是,他不会丢弃没有匹配的行,而是填充null给从结果集

  --左外连接

  select st.st_id as '学生编号', st.st_name as '学生姓名',cl.cl_id as '班级编号',cl_class as '班级名称'

  from studio as st left outer join class as cl

  on st.cl_id=cl.cl_id

  where cl.cl_id>2

  --多表

  select tka.te_co_id as '课程安排编号'

  ,cl.cl_id as '班级编号',cl.cl_class as '班级名称'

  ,co.co_id as '课程ID',co.co_name as '课程名称',co.co_num as '课时数'

  ,te.te_name as '老师姓名'

  from te_kc_ap as tka left outer join class as cl

  on tka.cl_id=cl.cl_id

  left outer join

  course as co

  on tka.co_id=co.co_id

  left outer join

  teacher as te

  on tka.te_id=te.te_id

  --====================右外连结 ======================

  select st.st_id as '学生编号', st.st_name as '学生姓名',cl.cl_id as '班级编号',cl_class as '班级名称'

  from studio as st right outer join class as cl

  on st.cl_id=cl.cl_id

  where cl.cl_id>2

  --多表

  select tka.te_co_id as '课程安排编号'

  ,cl.cl_id as '班级编号',cl.cl_class as '班级名称'

  ,co.co_id as '课程ID',co.co_name as '课程名称',co.co_num as '课时数'

  ,te.te_name as '老师姓名'

  from te_kc_ap as tka

  right outer join class as cl

  on

  tka.cl_id=cl.cl_id

  right outer join teacher te

  on

  tka.te_id=te.te_id

  right outer join course co

  on

  tka.co_id=co.co_id

  --=======完全连接=============

  select st.st_id as '学生编号', st.st_name as '学生姓名',cl.cl_id as '班级编号',cl_class as '班级名称'

  from studio as st full outer join class as cl

  on st.cl_id=cl.cl_id

  order by st.st_id

  --多表

  select tka.te_co_id as '课程安排编号'

  ,cl.cl_id as '班级编号',cl.cl_class as '班级名称'

  ,co.co_id as '课程ID',co.co_name as '课程名称',co.co_num as '课时数'

  ,te.te_name as '老师姓名'

  from te_kc_ap as tka

  full outer join class as cl

  on

  tka.cl_id=cl.cl_id

  full outer join teacher te

  on

  tka.te_id=te.te_id

  full outer join course co

  on

  tka.co_id=co.co_id

  --==========交叉连接==============

  --该方式在不带where子句时,返回的是两个表中所有数据行的笛卡尔积(第一个表中的行乘以第二个表中的行)

  --用学生和班级表做交叉查询

  select st_name,cl_class from studio cross join class

  select st_name,cl_class from studio,class

  select st_name,cl_class from studio cross join class

  --=========自连接===

  -----------------先临时创建一个表-------------

  create table zone(

  id int primary key identity(1,1) not null,

  z_zone varchar(30),

  z_id int references zone(id))

  --大家试下,这里是否可以给个默认值

  select * from zone

  insert into zone(z_zone) values('北京')

  insert into zone(z_zone,z_id) values('北京',4)

  insert into zone(z_zone) values('四川')

  insert into zone(z_zone,z_id) values('成都',6)

  insert into zone(z_zone,z_id) values('绵阳',6)

  insert into zone(z_zone) values('江苏')

  insert into zone(z_zone,z_id) values('南京',10)

  insert into zone(z_zone,z_id) values('苏州',10)

  insert into zone(z_zone,z_id) values('无锡',10)

  insert into zone(z_zone,z_id) values('常州',10)

  ----------------------------------------------

  --看下自连接的一般用处

  select a.z_zone,b.z_zone from zone as a inner join zone as b on a.z_id=b.id

  --扩展应用下

  select b.z_zone,count(a.z_zone) as '辖区数' from zone as a inner join zone as b on a.z_id=b.id group by b.z_zone

  --简单说就是自己连接自己,换言之对同一个表进行连接操作

  select a.st_name,a.st_add,b.st_name,b.st_add from studio as a inner join studio as b on a.st_add=b.st_add

  --我们发现有人等于自己,那么增加一个条件

  select a.st_name,a.st_add,b.st_name,b.st_add from studio as a inner join studio as b on a.st_add=b.st_add and a.st_name!=b.st_name

  --======子查询=====爱微网-天轰穿-======

  --在一个SQL语句中镶入另一个SQL语句教镶套查询,而被镶入的这个SQL语句就被江湖人称子查询。是处理多表操作的附加方法

  --子查询也称内部查询,而包含子查询的Select语句被诚为外部查询,子查询自身可以包括一个或者多个子查询,也可以镶套任意数量的子查询

  --使用in的子查询

  select * from studio where cl_id in (select cl_id from class where cl_id>2)

  --使用 not in

  select * from studio where cl_id not in (select cl_id from class where cl_id>2)

  --使用比较运算符的子查询 -- any 表示子查询中任意的值 all 表示子查询中的每个值

  --使用any

  select * from class where cl_id>any(select cl_id from studio where st_age>30)

  --使用all

  select * from class where cl_id>all(select cl_id from studio where st_age>30)

  --===========一个分页的SQL语句=======

  select top 3 * from studio

  where st_id>all(select top 3 st_id from studio order by st_id)

  order by st_id

  --使用 exists ,该关键字引入一个子查询的时候基本上是对数据进行一次是否存在的测试

  --我们查询那些人所在的班级是编号为 1 的

  select * from studio where exists(select cl_id from class where studio.cl_id=class.cl_id and class.cl_id=1)

  --使用 not exists

  select * from studio where not exists(select * from class where studio.cl_id=class.cl_id and class.cl_id=1) order by st_id

  --基于查询生成新的表

  select st_name into class_3 from studio where cl_id=3

  --将数据批量插入一个表中

  insert into class_3 select st_name from studio where cl_id=4

  -----------------------sql 编程--------------

  declare @max int;

  --申明一个变量@max

  set @max=1;

  --为变量@max赋值

  while @max

  --如果@max小于10就进入循环

  begin

  set @max=@max+1;--每次循环就给@max加1

  print @max;

  --打印当前@max的值

  end

  print '终于循环完了';

bitsCN.com

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
MySQL的角色:Web應用程序中的數據庫MySQL的角色:Web應用程序中的數據庫Apr 17, 2025 am 12:23 AM

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

mysql:構建您的第一個數據庫mysql:構建您的第一個數據庫Apr 17, 2025 am 12:22 AM

構建MySQL數據庫的步驟包括:1.創建數據庫和表,2.插入數據,3.進行查詢。首先,使用CREATEDATABASE和CREATETABLE語句創建數據庫和表,然後用INSERTINTO語句插入數據,最後用SELECT語句查詢數據。

MySQL:一種對數據存儲的初學者友好方法MySQL:一種對數據存儲的初學者友好方法Apr 17, 2025 am 12:21 AM

MySQL適合初學者,因為它易用且功能強大。 1.MySQL是關係型數據庫,使用SQL進行CRUD操作。 2.安裝簡單,需配置root用戶密碼。 3.使用INSERT、UPDATE、DELETE、SELECT進行數據操作。 4.複雜查詢可使用ORDERBY、WHERE和JOIN。 5.調試需檢查語法,使用EXPLAIN分析查詢。 6.優化建議包括使用索引、選擇合適數據類型和良好編程習慣。

MySQL初學者友好嗎?評估學習曲線MySQL初學者友好嗎?評估學習曲線Apr 17, 2025 am 12:19 AM

MySQL適合初學者,因為:1)易於安裝和配置,2)有豐富的學習資源,3)SQL語法直觀,4)工具支持強大。儘管如此,初學者需克服數據庫設計、查詢優化、安全管理和數據備份等挑戰。

SQL是一種編程語言嗎?澄清術語SQL是一種編程語言嗎?澄清術語Apr 17, 2025 am 12:17 AM

是的,sqlisaprogramminglanguges pecialized fordatamanage.1)它具有焦點,focusingonwhattoachieveratherthanhow.2)sqlisessential forquerying forquerying,插入,更新,更新,和detletingdatainrelationalDatabases.3)

解釋酸的特性(原子,一致性,隔離,耐用性)。解釋酸的特性(原子,一致性,隔離,耐用性)。Apr 16, 2025 am 12:20 AM

ACID屬性包括原子性、一致性、隔離性和持久性,是數據庫設計的基石。 1.原子性確保事務要么完全成功,要么完全失敗。 2.一致性保證數據庫在事務前後保持一致狀態。 3.隔離性確保事務之間互不干擾。 4.持久性確保事務提交後數據永久保存。

MySQL:數據庫管理系統與編程語言MySQL:數據庫管理系統與編程語言Apr 16, 2025 am 12:19 AM

MySQL既是數據庫管理系統(DBMS),也與編程語言緊密相關。 1)作為DBMS,MySQL用於存儲、組織和檢索數據,優化索引可提高查詢性能。 2)通過SQL與編程語言結合,嵌入在如Python中,使用ORM工具如SQLAlchemy可簡化操作。 3)性能優化包括索引、查詢、緩存、分庫分錶和事務管理。

mySQL:使用SQL命令管理數據mySQL:使用SQL命令管理數據Apr 16, 2025 am 12:19 AM

MySQL使用SQL命令管理數據。 1.基本命令包括SELECT、INSERT、UPDATE和DELETE。 2.高級用法涉及JOIN、子查詢和聚合函數。 3.常見錯誤有語法、邏輯和性能問題。 4.優化技巧包括使用索引、避免SELECT*和使用LIMIT。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器