中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫知識和spl語句相關講義

發布時間:2020-04-29 16:43:17 來源:億速云 閱讀:241 作者:三月 欄目:MySQL數據庫

下文主要給大家帶來數據庫知識和spl語句相關講義,希望數據庫知識和spl語句相關講義能夠帶給大家實際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

下邊把來實現一下一些語句。

-- 寫sql語句,發送給服務端執行

-- 在后面可以寫注釋

-- 創建庫,day16

CREATE DATABASE day16 DEFAULT CHARACTER SET utf8;

-- 使用day16這個數據庫

USE day16;

-- 查詢day16這個庫中的所有的表

SHOW TABLES;

-- 需求:創建學生表(id,name,age)

CREATE TABLE student(

-- 字段名稱 字段類型

id INT,

NAME VARCHAR(20),

age INT

);

數據庫知識和spl語句相關講義

-- 查詢表中的數據

SELECT * FROM student;


-- 查詢一個表結構

DESC student;


-- 刪除student表

DROP TABLE student;


-- 添加一個地址字段(gender varchar(2))

ALTER TABLE student ADD COLUMN gender VARCHAR(2);


-- 修改gender字段類型為varchar(3)

ALTER TABLE student MODIFY COLUMN gender VARCHAR(3);


-- 將gender字段修改為sex字段 varchar(2)

ALTER TABLE student CHANGE COLUMN gender sex VARCHAR(2);


-- 添加一個地址字段

ALTER TABLE student ADD COLUMN address VARCHAR(20);


-- 刪除sex和address字段

ALTER TABLE student DROP COLUMN sex,DROP COLUMN address;


-- 將student這個表的表名改為stu

ALTER TABLE stu RENAME TO student;


-- 查看表的數據

-- select 字段名稱(如果查詢所有字段*) from student;


-- 查看表數據

SELECT * FROM student;


-- 給表中插入3條數據(插入所有字段)

INSERT INTO student VALUES(1,'劉德華',50,'中國香港');

INSERT INTO student VALUES(2,'陳奕迅',40,'中國香港');

INSERT INTO student VALUES(3,'韓紅',50,'河北');


-- 當需要插入所有字段的時候我們可以直插入部分字段嗎?插入不了

INSERT INTO student VALUES(1,'成龍',60,'中國香港');


-- 指向給表中只想插入id字段和name字段,請問怎么辦?

INSERT INTO student(id,NAME) VALUES(4,'郭德綱');


-- 將所有學生的年齡改為50歲,修改所有學生的年齡,用的非常少

UPDATE student SET age=50;


-- 將id為3的學生姓名改為房祖名

UPDATE student SET NAME='房祖名' WHERE id=3;


-- 修改多個字段,修改id為2的學生姓名為張學友,年齡改為60

UPDATE student SET NAME='張學友',age=60 WHERE id=2;


-- 刪除全表數據,本質上是一條一條進行刪除的,效率比較慢

DELETE FROM student;


-- 刪除id為3的數據

DELETE FROM student WHERE id=3;


-- 使用truncate table 表名,刪除全表數據,并不是一條條刪,而是直接將全表數據刪除,效率比較快

TRUNCATE TABLE student;


-- delete from和truncate table 這兩種刪除全表的方式有什么區別呢?

-- 1.delete from一條條刪除,truncate table直接將全表數據干掉

-- 2.delete from可以按條件刪除一條數據,truncate table只能刪除全表數據,不能按照條件刪除

-- 3.delete from無法重置自增長主鍵,truncate table可以重置自增長主鍵


-- 查詢數據

-- 查詢所有列

SELECT * FROM student;


-- 查詢指定字段,查詢id,name

SELECT id,NAME FROM student;


-- 查詢時指定別名,name--姓名,address--住址

SELECT NAME AS '姓名',address AS '住址' FROM student;


-- 上面指定別名的as是可以省略的

SELECT NAME '姓名' FROM student;


-- 添加servlet,jsp字段

ALTER TABLE student ADD COLUMN servlet INT,ADD COLUMN jsp INT;


-- 給每條學生數據添加上servlet和jsp的成績

UPDATE student SET servlet=50,jsp=60 WHERE id=1;

UPDATE student SET servlet=60,jsp=70 WHERE id=2;

UPDATE student SET servlet=70,jsp=80 WHERE id=3;


-- 合并servlet和jsp這兩個列進行查詢,查詢每個學生的servlet和jsp的成績總和

-- 合并列查詢有一個特點:只能合并數值類型的字段

SELECT NAME '姓名',(servlet+jsp) '總成績' FROM student;



-- 查詢時添加常量列,給student表添加一個常量列  班級--java001

SELECT NAME '姓名',address '地址','java001' AS '班級' FROM student;



-- 查詢你們班的學生都來自于哪里

SELECT NAME '姓名',address '地址' FROM student;


-- 去除重復值來查詢每一個學生來自于哪里

SELECT DISTINCT address FROM student;

-- 去除重復值的另一種寫法

SELECT DISTINCT(address) FROM student;



-- 查詢id為1并且,并且servlet成績等于50的學生(交集 and)

SELECT * FROM student WHERE id=1 AND servlet=50;


-- 查詢id為1或者來自中國香港的學生(并集 or)

SELECT * FROM student WHERE id=1 OR address='中國香港';



-- 查詢servlet成績大于60分的學生

SELECT * FROM student WHERE servlet>60;


-- 查詢jsp成績小于等于70的學生

SELECT * FROM student WHERE jsp<=70;

-- 另一種寫法

SELECT * FROM student WHERE jsp<70 OR jsp=70;


-- 查詢jsp的成績大于等于70并且小于等于80的學生

SELECT * FROM student WHERE jsp<=80 AND jsp>=70;

-- 上面寫法的另一種語法,between...and...包前也包后

SELECT * FROM student WHERE jsp BETWEEN 70 AND 80;



-- 查詢學生年齡不等于30歲的學生

SELECT * FROM student WHERE age<>30;


-- 給student表中添加一個數據

INSERT INTO student VALUES(4,'郭德綱',NULL,'',80,90);


-- 查詢age字段為null的學生(IS NULL)

SELECT * FROM student WHERE age IS NULL;


-- 查詢address字段為空字符串的學生(='')

SELECT * FROM student WHERE address='';


-- 查詢age字段不為null的學生(is not null)

SELECT  * FROM student WHERE age IS NOT NULL;


-- 查詢address字段不為''的學生(<>'')

SELECT * FROM student WHERE address<>'';



-- 模糊查詢(like),like后面跟的是符號

-- %任意多個字符

-- _一個字符


-- 查詢姓劉的學生(like '劉%')

SELECT * FROM student WHERE NAME LIKE '劉%';

-- 查詢姓名中含有劉這個字的學生

SELECT * FROM student WHERE NAME LIKE '%劉%';

-- 查詢姓劉,且姓名有3個字的學生

SELECT * FROM student WHERE NAME LIKE '劉__';



-- 聚合函數

-- 查詢servlet的總成績(sum -- 求和函數)

SELECT SUM(servlet) FROM student;


-- 查詢每個學生的servlet平均分(avg,平均函數)

SELECT AVG(servlet) FROM student;


-- 查詢學生的servlet的最高成績(max ,最大值函數)

SELECT MAX(servlet) FROM student;


-- 查詢所有學生的servlet的最低成績(min,求取最小值函數)

SELECT MIN(servlet) FROM student;


-- 求取這張學生表中有多少條數據(count(*))

-- 效率比較低

SELECT COUNT(*) FROM student;


-- 根據某一個字段求取學生表中的數據條數,當一個字段數值為null的時候,是不予計算的

-- 但是這種方式求取得統計值的時候效率會更高,但是有時候數據不夠準確

SELECT COUNT(age) FROM student;



-- 求取本班中香港和河北的學生分別有多少人

-- 1.給學生使用address這個字段進行分組(group by) 2.求取每一組中的學生人數

-- address  count

-- 香港       2

-- 河北       1

SELECT address,COUNT(*) FROM student GROUP BY address;



-- 查詢人數大于1的地域(group by 分組字段 having 篩選條件) 

SELECT address,COUNT(*) FROM student GROUP BY address HAVING COUNT(*)>1;



-- 分頁查詢 limit 起始行數,查詢的條數   注意:起始行數從0開始

-- 假設我的表中有20條數據,分為4也顯示

-- 第一頁:limit 0,5

-- 第二頁:limit 5,5

-- 第三頁:limit 10,5

-- 第四頁:limit 15,5

-- 結論:查詢某一頁要現實的數據的時候可以利用如下公式  limit (當前頁數-1)*每頁顯示的條數,每頁現實的條數


-- student表中目前有4條數據,分為2頁顯示,每頁顯示2條

-- 查詢第一頁的顯示數據:

SELECT * FROM student LIMIT 0,2;

-- 查詢第二頁現實的數據

SELECT * FROM student LIMIT 2,2;


-- 按照id字段的升序進行排序

-- asc,升序,數字從小到大,字母a-z

-- desc,降序,數字從大到小,字母z-a

SELECT * FROM student ORDER BY id DESC;


-- 按照servlet的成績的降序進行排序

SELECT * FROM student ORDER BY servlet DESC;


-- 當有多個排序條件的時候,先按照第一個條件排序,如果第一個條件相同則按照第二個條件進行排序

-- 先按照學生的年齡升序進行排序,年齡相同按照學生的servelt成績的升序進行排序

SELECT * FROM student ORDER BY age ASC,servlet ASC;



DESC student;


SELECT * FROM student;

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

-- 數據約束 :給表添加一些數據約束從而可以達到約束用戶操作數據的效果

-- 1:默認值約束(default)

-- :當給這個字段沒有添加值的時候,會給一個默認值,如果給默認值約束的字段添加的值為null的時候,那么他的字段值就為null

-- 創建一個stu表

CREATE TABLE stu(

id INT,

NAME VARCHAR(20),

-- 給性別gender這個字段添加一個默認值約束

gender VARCHAR(2) DEFAULT '男'

);

-- 給stu表中添加幾個數據

INSERT INTO stu VALUES(1,'張三','男');

INSERT INTO stu(id,NAME) VALUES(2,'李四');


-- 給stu表中插入數據,性別為null

INSERT INTO stu VALUES(3,'劉詩詩',NULL);



-- 2.非空約束(not null),插入的字段不為null,而且必須插入數據

CREATE TABLE stu(

-- 給stu表中的id字段添加一個非空約束

id INT NOT NULL,

NAME VARCHAR(20),

gender VARCHAR(2)

);

-- 給這張表中添加一個元素,不插入id字段的值

INSERT INTO stu(NAME,gender) VALUES('郭德綱','男');

-- 給這張表添加一條數據,id字段的值直接給成null,這樣的話是插入不進去的。。


-- 唯一約束(unique)

-- 給stu表添加一個唯一約束

CREATE TABLE stu(

-- 給stu表中的id字段添加唯一約束

id INT UNIQUE,

NAME VARCHAR(20),

gender VARCHAR(2)

);

-- 給表中插入兩條id相同的數據

INSERT INTO stu VALUES(1,'劉德華','男');

INSERT INTO stu VALUES(1,'張學友','男');-- Duplicate entry '1' for key 'id',無法插入重復的id值



-- 給表中插入一條id為null的數據,當給id添加了唯一約束之后,依然可以給他插入多條null值,不會出現重復

INSERT INTO stu VALUES(NULL,'吳奇隆','男');

INSERT INTO stu VALUES(NULL,'劉詩詩','女');


-- 經過我們的分析,我們認定我們的這個id字段(唯一+非空)--主鍵(primary key)

-- 注意:

-- 1.一般來說我們需要給每一張表都設定一個主鍵字段(非空+唯一),用來標示一條信息的唯一性

-- 2.我們一般不會將業務字段設定為主鍵字段,比如name字段,一般我們會給每一張表添加一個id字段作為主鍵字段

-- 3.建議給每張表添加一個主鍵字段,用來標示每一條數據的唯一性

CREATE TABLE stu(

-- 給stu表中的id字段設置為主鍵(唯一+非空)

id INT PRIMARY KEY,

NAME VARCHAR(20),

gender VARCHAR(2)

);

-- 給表中插入兩條id為1的學生信息

INSERT INTO stu VALUES(1,'華仔','男');

INSERT INTO stu VALUES(1,'華建','男');-- Duplicate entry '1' for key 'PRIMARY'


-- 給表中插入id為null的元素

INSERT INTO stu VALUES(NULL,'杰倫','男');-- Column 'id' cannot be null


-- 上面的實驗我們可以得出結論,當我們給id字段設置了主鍵約束后,這個id字段就非空+唯一了



-- 自增長約束(auto_increment)

-- 給stu表中的id字段添加一個主鍵自增長約束

CREATE TABLE stu(

-- 給stu表中的id字段設置主鍵自增長約束,我們其實就將id這個字段交給了數據庫自己去維護,我們自己不需要去動他

id INT PRIMARY KEY AUTO_INCREMENT,

NAME VARCHAR(20),

gender VARCHAR(2)

);

-- 給stu表中添加兩條數據

INSERT INTO stu(NAME,gender) VALUES('華仔','男');

INSERT INTO stu(NAME,gender) VALUES('周杰倫','男');

INSERT INTO stu(NAME,gender) VALUES('周杰倫','男');

INSERT INTO stu(NAME,gender) VALUES('周杰倫','男');


-- 刪除id為4的數據

DELETE FROM stu WHERE id=4;

-- 給表中添加一條數據

INSERT INTO stu(NAME,gender) VALUES('張學友','男');

-- delete from 這種刪除數據的方式,無法重置自增長的主鍵


-- 刪除stu的全表數據

DELETE FROM stu;

-- 添加一條數據

INSERT INTO stu(NAME,gender) VALUES('張學友','男');


-- 刪除全表數據的truncate table 表名 ,刪除全表數據,這種刪除全表數據的方式可以重置主鍵

TRUNCATE TABLE stu;

對于以上關于數據庫知識和spl語句相關講義,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

咸宁市| 新乡市| 永川市| 龙江县| 嘉荫县| 祁连县| 定陶县| 虎林市| 开封县| 柞水县| 手游| 舞钢市| 花莲县| 郸城县| 河北区| 瑞昌市| 那曲县| 绿春县| 安达市| 铅山县| 化州市| 资阳市| 崇州市| 东阿县| 广饶县| 太仆寺旗| 延吉市| 安仁县| 桦川县| 鄂伦春自治旗| 山西省| 武威市| 龙山县| 绥芬河市| 华蓥市| 利川市| 霍城县| 泸西县| 昔阳县| 仁化县| 普安县|