日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 非空语法_mysql从入门到优化(1)基本操作上

發布時間:2023/12/4 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 非空语法_mysql从入门到优化(1)基本操作上 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是數據庫系列的第一篇文章,主要是對mysql的基本操作有一個了解。本系列的教程會先從基礎出發,逐步過渡到優化。

一、前提

在這里我們不會從如何去安裝數據庫開始講起,而是在安裝完之后從操作數據庫開始,文中所有的代碼均在我自己的win10電腦上實現過一遍,確保無誤。而且本文是基于mysql5.7.23的版本中實現的。下面就直接開始。

注意,對于數據庫在學習的時候,過程都是從增查改刪用的順序來的。

二、操作數據庫

1、創建數據庫1語法:

2????CREATE?DATABASE?數據庫名?[IF?NOT?EXISTS];

3實例:

4????mysql>?create?database?test_db;

5????Query?OK,?1?row?affected?(0.02?sec)

6描述:

7????創建一個名為test_db的數據庫

2、查看數據庫1語法:

2????SHOW?DATABASES?[LIKE?"篩選條件"];

3實例:

4????mysql>?show?databases?like?"%test%";

5????+-------------------+

6????|?Database?(%test%)?|

7????+-------------------+

8????|?test??????????????|

9????|?test1?????????????|

10????|?test_db???????????|

11????+-------------------+

12????3?rows?in?set?(0.00?sec)

13描述:

14????顯示所有包含test的數據庫

3、修改數據庫

說實話一般,不修改數據庫,如果有問題直接刪除了重建。1語法:

2????ALTER?DATABASE?[數據庫名]?{[DEFAULT]?CHARACTER?SET?};

3實例:

4????mysql>?alter?database?test_db?default?character?set?gb2312;

5Query?OK,?1?row?affected?(0.00?sec)

6描述:

7????修改數據庫test_db的默認字符集為gb2312

4、刪除數據庫1語法:

2????DROP?DATABASE?[IF?EXISTS]?數據庫名;

3實例:

4????mysql>?drop?database?if?exists?test_db;

5????Query?OK,?0?rows?affected?(0.18?sec)

6描述:

7????如果數據庫test_db存在,那就刪除掉

5、使用數據庫1語法:

2????USE?數據庫名;

3實例:

4????mysql>?use?test1;

5????Database?changed

6描述:

7????進入到當前數據庫

三、操作表

1、創建表1語法:

2????CREATE?TABLE?表名?(字段名?字段類型,?字段名?字段類型.....);

3實例:

4????mysql>?use?test_db;

5????Database?changed

6????mysql>?create?table?student(

7????->?id?int(11),

8????->?name?varchar(20),

9????->?class_id?int(11),

10????->?score?float

11????->?);

12????Query?OK,?0?rows?affected?(0.30?sec)

13描述:

14????首先進入當前數據庫test_db,然后創建一個student表

2、查看表1語法:

2????SHOW?TABLES?[LIKE?'篩選條件'];

3實例:

4????mysql>?show?tables;

5????+-------------------+

6????|?Tables_in_test_db?|

7????+-------------------+

8????|?student???????????|

9????+-------------------+

10????1?row?in?set?(0.01?sec)

11描述:

12????顯示當前數據庫素所有的表

3、查看表結構1語法:

2????DESCRIBE?表名;

3實例:

4????mysql>?describe?student;

5????+----------+-------------+------+-----+---------+-------+

6????|?Field????|?Type????????|?Null?|?Key?|?Default?|?Extra?|

7????+----------+-------------+------+-----+---------+-------+

8????|?id???????|?int(11)?????|?YES??|?????|?NULL????|???????|

9????|?name?????|?varchar(20)?|?YES??|?????|?NULL????|???????|

10????|?class_id?|?int(11)?????|?YES??|?????|?NULL????|???????|

11????|?score????|?float???????|?YES??|?????|?NULL????|???????|

12????+----------+-------------+------+-----+---------+-------+

13????4?rows?in?set?(0.01?sec)

14描述:

15????查看student數據表的結構

4、修改表

(1)添加字段1語法:

2????ALTER?TABLE?表名?ADD?字段名稱?字段類型;

3實例:

4????mysql>?alter?table?student?add?age?int(11);

5????Query?OK,?0?rows?affected?(0.42?sec)

6????Records:?0??Duplicates:?0??Warnings:?0

7描述:

8????修改數據表student,新增了一個age字段

(2)修改字段類型1語法:

2????ALTER?TABLE?表名?MODIFY?字段名?字段類型;

3實例:

4????mysql>?alter?table?student?modify?age?varchar(20);

5????Query?OK,?0?rows?affected?(0.31?sec)

6????Records:?0??Duplicates:?0??Warnings:?0

7描述:

8????修改數據表student,將字段age的類型改為varchar

(3)修改字段名稱1語法:

2????ALTER?TABLE?表名?CHANGE?舊字段名?新字段名?新字段類型;

3實例:

4????mysql>?alter?table?student?change?score?grade?int(11);

5????Query?OK,?0?rows?affected?(0.37?sec)

6????Records:?0??Duplicates:?0??Warnings:?0

7描述:

8????修改數據表student,將score字段改為grade,并設置新的字段類型

(4)刪除字段1語法:

2????ALTER?TABLE?表名?DROP?字段名;

3實例:

4????mysql>?alter?table?student?drop?age;

5????Query?OK,?0?rows?affected?(0.25?sec)

6????Records:?0??Duplicates:?0??Warnings:?0

7描述:

8????修改數據表student,刪除age字段

(5)修改表名1語法:

2????ALTER?TABLE?舊表名?RENAME?新表名;

3實例:

4????mysql>?alter?table?student?rename?stu;

5????Query?OK,?0?rows?affected?(0.05?sec)

6描述:

7????修改數據表student,重新命名為stu

5、刪除表1語法:

2????DROP?TABLE?[IF?EXISTS]?表名;

3實例:

4????mysql>?drop?table?if?exists?student;

5????Query?OK,?0?rows?affected?(0.05?sec)

6描述:

7????如果表student存在,那就刪除掉

四、約束

約束的作用,主要是為了確保數據的一致性和完整性。一般在創建表的時候指定。

1、主鍵約束

(1)主鍵約束1語法:

2????字段名稱?字段類型?PRIMARY?KEY;

3實例:

4????mysql>?create?table?teacher(

5????->?id?int(11)?primary?key,

6????->?name?varchar(20),

7????->?classId?int(11),

8????->?socre?float

9????->?);

10????Query?OK,?0?rows?affected?(0.15?sec)

11描述:

12????在創建表的同時,設置id為主鍵

或者是這種新式1????mysql>?create?table?teacher(

2????->?id?int(11)?,

3????->?name?varchar(20),

4????->?classId?int(11),

5????->?socre?float,

6????->?primary?key(id)

7????->?);

8????Query?OK,?0?rows?affected?(0.15?sec)

(2)復合主鍵約束1語法:

2????PRIMARY?KEY?[字段1,?字段2......]

3實例:

4????mysql>?create?table?teacher(

5????->?id?int(11)?,

6????->?name?varchar(20),

7????->?classId?int(11),

8????->?socre?float,

9????->?primary?key(id,classId)

10????->?);

11????Query?OK,?0?rows?affected?(0.12?sec)

12描述:

13????為表teacher設置多個主鍵

(3)修改表添加主鍵約束1語法:

2????ALTER?TABLE?表名?ADD?PRIMARY?KEY?(字段名);

3實例:

4????mysql>?alter?table?stu?add?primary?key(id);

5????Query?OK,?0?rows?affected?(0.25?sec)

6????Records:?0??Duplicates:?0??Warnings:?0

7描述:

8????修改表stu,新增一個主鍵id

2、外鍵約束

外鍵用于連接兩張表,

(1)創建表時添加外鍵約束1語法:

2????FOREIGN?KEY?字段1?字段2.....?REFERENCES?主表?字段1?字段2......

3實例:

4????mysql>?create?table?class(

5????->?id?int(11)?primary?key,

6????->?name?varchar(25)

7????->?);

8????Query?OK,?0?rows?affected?(0.16?sec)

9

10????mysql>?create?table?stu(

11????->?id?int(11),

12????->?name?varchar(25),

13????->?class_id?int(11),

14????->?score?float,

15????->?foreign?key(class_id)?references?class(id)

16????->?);

17????Query?OK,?0?rows?affected?(0.18?sec)

18描述:

19????首先創建一個class表,然后再創建stu表的時候,設置class_id為外鍵,指向class表

(2)修改表時添加外鍵約束1語法:

2????ALTER?TABLE?表名?ADD?FOREIGN?KEY?外鍵字段名?REFERENCES?主表名?主表字段;

3實例:

4????mysql>?alter?table?stu

5????->?add?foreign?key(class_id)

6????->?references?class(id);

7????Query?OK,?0?rows?affected?(0.47?sec)

8????Records:?0??Duplicates:?0??Warnings:?0

9描述:

10????修改表stu,增加一個外鍵

(3)刪除外鍵約束1語法:

2????ALTER?TABLE?表名?DROP?FOREIGN?KEY?外鍵字段名

3實例:

4????mysql>?alter?table?stu

5????->?add?constraint?fk_class_id?foreign?key(class_id)

6????->?references?class(id);

7????Query?OK,?0?rows?affected?(0.39?sec)

8????Records:?0??Duplicates:?0??Warnings:?0

9

10????mysql>?alter?table?stu?drop?foreign?key?fk_class_id;

11????Query?OK,?0?rows?affected?(0.05?sec)

12????Records:?0??Duplicates:?0??Warnings:?0

13描述:

14????新增加一個外鍵,然后刪除,注意我們為外鍵起了個名字fk_class_id

3、唯一約束1語法:

2????字段名?字段類型?UNIQUE;

3實例:

4????mysql>?create?table?stu2(

5????->?id?int(11),

6????->?name?varchar(25)?unique,

7????->?primary?key(id)

8????->?);

9????Query?OK,?0?rows?affected?(0.16?sec)

4、默認約束1語法:

2????字段名?字段類型?DEFAULT?默認值;

3實例:

4????mysql>?create?table?stu3(

5????->?id?int(11)?primary?key,

6????->?name?varchar(25)?unique,

7????->?sex?varchar(10)?default?"women"

8????->?);

9????Query?OK,?0?rows?affected?(0.18?sec)

5、非空約束1語法:

2????字段名?字段類型?NOT?NULL;

3實例:

4????mysql>?create?table?stu4(

5????->?id?int(11)?primary?key,

6????->?name?varchar(25)?unique,

7????->?sex?varchar(10)?default?"women",

8????->?class_id?int(11)?not?null

9????->?);

10????Query?OK,?0?rows?affected?(0.19?sec)

五、函數

1、數值型函數1ABS(X):返回X的絕對值

2MOD(X,Y):返回X被Y除后的余數

3SQRT(X):返回非負數X的二次方根

4SIGN(X):返回X的符號,為正返回1,為負返回-1

5CEIL(X):返回不小于X的最小整數

6SIN(X):返回X的sin值,其他三角函數類似

2、字符串函數1LENGTH(str):返回str的字節長度

2UPPER(str):將str中的每一個字母全部轉化為大寫

3LOWER(str):將str中的每一個字母全部轉化為小寫

4LEFT(str,n):返回str中最左邊的n個字符

5RIGHT(str,n):返回str中最右邊的n個字符

6CONCAT(S1,S2,S3.....):將內部多個字符串拼接

7TRIM(str):刪除str兩邊的空格

8SUNSREING(str,n,len):從位置n開始,返回str的長度為len的字串

9REVERSE(str):將字符串str反轉

10REPLACE(s,s1,s2):使用s2,替換掉s中的所有s1字串

3、日期函數1NOW()=SYSDATE():返回當前的系統時間,格式為“2020-10-03?19:35:25”

2CURDATE()=CURRENT_DATE():返回日期,格式為“2020-10-03”

3CURTIME()=CURRENT_TIME():返回系統時間,格式為“19:37:28”

4DAYOFWEEK()=WEEKDAY():返回當天在一周中的索引,weekday("2020-10-03")

5DAYOFMONTH(d)=DAYOFYEAR(d):返回d是一個月的第幾天

6MONTH(data)=MONTHNAME(data):返回data對應的月份

7DATEDIFF(date1,date2):返回date1和date2之間的天數

4、聚合函數1MAX():返回指定列中的最大值

2MIN():返回查詢列中的最小值

3COUNT(字段名):統計含有字段名的總行數

4SUM():返回指定列的總和值

5AVG():返回指定列的平均值

5、自定義函數

(1)無參數1語法:

2????CREATE?FUNCTION?函數名()?RETURNS?字段類型

3????RETURN?操作;

4實例:

5????mysql>?create?function?f1()?returns?varchar(30)

6????->?return?now();

7????Query?OK,?0?rows?affected?(0.03?sec)

8調用:

9????mysql>?select?f1();

10????+---------------------+

11????|?f1()????????????????|

12????+---------------------+

13????|?2020-11-05?15:52:24?|

14????+---------------------+

15????1?row?in?set?(0.03?sec)

(2)有參數1語法:

2????CREATE?FUNCTION?函數名(參數名?參數類型,參數名?參數類型.....)

3????RETURNS?返回類型

4????RETURN?函數操作

5實例:

6????mysql>?create?FUNCTION?f2(num1?smallint?unsigned,num2?smallint?unsigned)

7????->?returns?float(10,2)

8????->?return?(num1+num2)/2;

9????Query?OK,?0?rows?affected?(0.00?sec)

10調用:

11????mysql>?select?f2(10,20);

12????+-----------+

13????|?f2(10,20)?|

14????+-----------+

15????|?????15.00?|

16????+-----------+

17????1?row?in?set?(0.01?sec)

OK,寫到這算是把基礎知識的上半部分寫完了,下一部分主要寫對數據表的增刪改查操作,因為這個查詢操作實在是過于麻煩,因此單開了一篇文章來描述,以上內容適合學過mysql基礎的人,進行一個鞏固或者是回顧,屬于最最基本的知識點范疇了。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的mysql 非空语法_mysql从入门到优化(1)基本操作上的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。