首頁  >  文章  >  資料庫  >  5分鐘學會mysql基本操作

5分鐘學會mysql基本操作

coldplay.xixi
coldplay.xixi轉載
2020-12-09 17:29:522907瀏覽

mysql影片教學專欄介紹如何快速學會mysql基本操作

5分鐘學會mysql基本操作

#相關免費學習推薦:mysql影片教學

文章目錄

  • 一、SQL是什麼?
    • 分類:
  • 二、關於資料庫CRUD操作
    • 1.操作表list:
    • 2.對表內資料進行操作:
      • a.查詢
      • b.where條件:
  • #三、查詢
    • 1.排序查詢
    • #2.聚合函數(列的計算)
    • 3 .分組查詢
    • 4. 排序查詢
  • 四、約束
    • ##1.非空約束:not null
    • 2.唯一約束
      • 實例操作:
    • #3.主鍵約束:primary key
    • 4.自動成長:auto_increment
  • 五、總結
      • 錯誤實例








##一、SQL是什麼?

structured Query Language:結構化查詢語言

分類:

1) DDL(Data Definition Language)資料定義語言 用來定義資料庫物件:資料庫,表,列等。關鍵字:create, drop,alter 等

2) DML(Data Manipulation Language)資料操作語言

用來對資料庫中資料表的資料進行增刪改。關鍵字:insert, delete, update 等

3) DQL(Data Query Language)資料查詢語言

用來查詢資料庫中表格的記錄(資料)。關鍵字:select, where 等

4) DCL(Data Control Language)資料控制語言(了解)

用來定義資料庫的存取權限和安全級別,並建立使用者。關鍵字:GRANT, REVOKE 等

二、關於資料庫CRUD操作

#Createcreate database hzyc;create database if not exists hzyc98 character set gbk;#Retrieveshow databases;show create database hzyc98;#Updatealter database hzyc98 character set gbk;#Deletedrop database hzyc98;drop database if exists hzyc98; #查看当前使用的数据库select database();show tables;use hzyc98
    1.操作表list:
  1. 表名/表頭為:zoomlist
#查show tables; -- show tables_in_hzyc98desc zoomlist;#增create table zoomlist (
	Name  varchar(30),
	Age	  int,
	ID	  int,
	Height double(5,1))#删drop table if exists zoomlist;#改alter table zoomlist rename to newzoomlist;alter table zoomlist character set gbk;alter table zoomlist add Name varchar(20);#加列alter table zoomlist change Age newAge int;alter table zoomlist modify Age char(8);alter table zoomlist drop Name;/*设置类型:*/
 - int、double(5,1)、varchar(20) 
 - date 	#yyyy-MM-dd
 - datetime #yyyy-MM-dd HH:mm:ss 
 - timestamp#时间戳 yyyy-MM-dd HH:mm:ss

2.對錶內資料進行操作:

#除了数字,其他都需要引号来赋值insert into zoomlist (Name, Age, ID, Height) value('美洲豹',5,'20201207',3.2);insert into zoomlist ('美洲豹',5,'20201207',3.2);#删除delete from zoomlist where [条件];delete from zoomlist;TRUNCATE TABLE zoomlist;#修改update zoomlist set Name = '大笨象' Age = 12 where address = '深圳';update zoomlist set address = '深圳';

a.查詢

#查询#尽量不要用 * 先desc一下表里面有啥,然后在决定展示什么东西。SELECT * FROM zoomlist; SELECT Name,Age FROM zoomlist;	 --只显示某个列,方便查看!SELECT DISTINCT Name FROM zoomlist; --去除结果中[完全重复]的SELECT Name,score1,score2,scroe1+scroe2 FROM zoomlist;--as:自定义名字展示,也可以不写asSELECT Name,scroe1+IFNULL(scroe2,0) 总分 FROM zoomlist; --ifnull遇到没有值的直接给赋值为0SELECT Name,score1,score2,scroe1+IFNULL(scroe2,0) AS 总分 --显示表头FROM zoomlist,peoplelist; --从zoomlist、peoplelist里面获取
    b.where條件:
  • * > 、= 、= 、!=、--不等号* and、or、not --关键字比&&、||、!好用推荐* BETWEEN...AND --范围内都符合就行* IN( 集合) --特定值的范围* LIKE:模糊查询(1)_:单个任意字符;(2)%:多个任意字符* IS NULL例子:select Name, Age from Student where age between 12 and 20;select Name, Age from Student where age in (12,14,16,18);select Name, Age from Student where name like '%牛%'; --查名字里面包含了牛的学生select Name, Age from Student where name is not null; -- 查询学生:名字空的不查
    三、查詢
      1.排序查詢
    • select * from employee order by age;select * from employee order by age asc; --升序select * from employee order by age desc; --降序select * from employee order by age desc height desc; --第一个一样的时候,才会用第二个方法排序(age降序,身高降序)
    • 2.聚合函數(列的計算)
    • 排除了null數據,有null的數據就不參與計算,不會報錯!
count:統計數

min、max、sum、avg:求值

select count(*) from student;select count(ifnull(age,20)) from student; select count(age) from student;--如果没有就不记录select count(id) from student; --我们一般选用主键来统计个数select max(age) from student;select min(age) from student;select sum(age) from student;select avg(age) from student;

3. 分組查詢

    group by 之後就是兩個不同的組別了,他們不能再去查看一個獨立的個體了。
    1. 分組之後查詢的欄位:分組欄位、聚合函數。
    2. where和having的差別?
    where在分組前限定,having在分組之後限定;
where不符合條件的不參與分組,having不符合條件不會顯示;

只有having可以後跟聚合函數判斷。

5分鐘學會mysql基本操作

select sex,count(name) from employee group by sex having count(name)

4. 排序查詢

limit是一個MySQL的方言,用來分頁

SELECT * FROM student LIMIT 0,5; -- 第1页,从0索引开始,读5个数据SELECT * FROM student LIMIT 7,10; -- 第2页,从7索引开始(第8个数据),读10个数据
四、限制

#約束:

5分鐘學會mysql基本操作主鍵約束:primary key
5分鐘學會mysql基本操作非空約束:not null

唯一約束:unique

外鍵約束: foreign key


1.非空約束:not null

-- 建表时添加非空约束:
 create table employee(
 	name char(30),
 	sex char(8) not null
 )
 alter table employee modify sex char(8) not null; --添加非空约束
 alter table employee modify sex char(8); --破除非空约束

2.唯一約束

#只可以有一個null值,不能再多了; 刪除約束只可以用drop index來刪除unique約束

-- 建表时添加唯一约束:
 create table employee(
 	name char(30),
 	sex char(8),
 	score int unique --分数要唯一
 )
 --添加唯一约束alter table employee modify name char(8) unique;
 --破除唯一约束-- alter table employee modify sex char(8); 不可用--破除name身上的unique约束用drop index除去索引alter table employee drop index name;

實例運算:

############################################################ ##############3.主鍵約束:primary key#########一個表只有一個primary key,非空且唯一### 做記錄的唯一標識,相當於index######
-- 建表时添加主键约束:
 create table employee(
 	id int  primary key, --给id加上主键约束
 	name char(30),
 )
 --添加唯一约束alter table employee modify id int primary key;
 --破除唯一约束-- alter table employee modify id int; 不可用!--破除id身上的primary key约束只能用drop primary keyalter table employee drop primary key;
###4.自動成長:auto_increment##########只對數值有用,而且一般可以放給主鍵做自動成長######
-- 建表时添加auto_increment:
 create table employee(
 	id int auto_increment, --给id加上auto_increment
 	name char(30),
 )
 --添加auto_increment,自动从1开始alter table employee modify id int auto_increment;--设置初值alter table employee auto_increment = 100;
 --破除auto_incrementalter table employee modify id int;
# ##五、總結######### 我們學習了SQL是什麼,做了一個簡單的入門,也列舉了一些MySQL的基本操作,還有查詢、限制是怎麼一回事。 ############ 但我也是剛剛才接觸MySQL,所以基本的操作手還比較生,要多學多練多去實作才能出真知。 ############ 之後我們還會學習到MySQL的多重關係、多表查詢、交易(還不太清楚是什麼)、JDBC各個語句、資料庫連線池druid、JDBCTemplate…還有好多東西要學,但是現在的任務還是在於把基本的東西梳理好,把基礎鞏固了才是硬道理! ! ! ######

錯誤實例:

如新增資料的時候不寫列名,那必須給所有列值,不然報錯


以上是5分鐘學會mysql基本操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除