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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql数据库基本知识点整理笔记

發(fā)布時間:2023/12/31 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库基本知识点整理笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

學習目標:

  • SQL的基本分類
  • MYSQL數(shù)據(jù)庫中的數(shù)據(jù)類型
  • DDL表的相關(guān)操作
  • DML表中數(shù)據(jù)的增刪改

學習內(nèi)容:

????????數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)

????????????????1. 一個DBMS(數(shù)據(jù)庫系統(tǒng))中 可以有多個數(shù)據(jù)庫(database)
????????????????2. 一個數(shù)據(jù)庫(database)中 可以有多個表(table)
????????????????3. 一個表中 可以有多條數(shù)據(jù) 多個字段(列)

比如說,把一個數(shù)據(jù)庫比化成一個excel文件,一個excel文件中可以有多個表,一個單獨的表中我們可以列多行數(shù)據(jù)。

1,SQL基本分類

? ? ? ? 1)DDL 數(shù)據(jù)定義語言

對數(shù)據(jù)庫的創(chuàng)建和刪除 以及對數(shù)據(jù)庫表的創(chuàng)建刪除和修改 關(guān)鍵字:create、drop

? ? ? ? 2)DML 數(shù)據(jù)操作語言:

對數(shù)據(jù)庫表中數(shù)據(jù)的增 刪 改 關(guān)鍵字:insert、delete、update

? ? ? ? 3)DQL 數(shù)據(jù)查詢語言:

對數(shù)據(jù)庫表中數(shù)據(jù) 查詢 關(guān)鍵字:select

? ? ? ? 4)DCL 數(shù)據(jù)控制語言:

指定用戶 分配權(quán)限 關(guān)鍵字:grant、revoke


2,MYSQL數(shù)據(jù)庫中的數(shù)據(jù)類型

? ? ? ? 1)整形

? ? ? ? ? ? ? ? tinyint / smallint / int / bigint? ? ? ? ?byte(-128? ?127)? ? ? ? short? ? int? ?long

? ? ? ? 2)浮點型

? ? ? ? ? ? ? ? float(n,m)? ? ? ? double(n,m)? ? ? ? decimal(n,m)? 準確值 n和m可以省略

? ? ? ? ? ? ? ? ? ? ? ? n:整數(shù)位+小數(shù)位的個數(shù)

? ? ? ? ? ? ? ? ? ? ? ? m:小數(shù)位的個數(shù)

例如:decimal(6,2) 總共能存6位數(shù)字,末尾2位是小數(shù),字段最大值 ?9999.99

? ? ? ? 3)字符型,

????????實際開發(fā)中,varchar相對比較多

? ? ? ? varchar(n)? ????????變長字符串 ? n必選 ?保存字符最大個數(shù) ? ? ? ?性能低

例如: 定義姓名數(shù)據(jù)類型varchar(10), 可以存儲的姓名對應的字符個數(shù)0-10, 10表示最多可以存儲的字符個數(shù), 實際客戶姓名叫 AB, 在數(shù)據(jù)庫中存儲占有的空間就是2, 不是10

? ? ? ? char(n)????????????????定長字符串 ? ?n可選 默認為1 保存字符最大個數(shù) ? ? 性能高

例如: 定義姓名數(shù)據(jù)類型char(10), 可以存儲的姓名對應的字符個數(shù)0-10, 10表示最多可以存儲的字符個數(shù), 實際客戶姓名叫 AB, 在數(shù)據(jù)庫中存儲占有的空間還是10, 不是10

? ? ? ? 4)日期

? ? ? ? data? ? ? ? ? ? ? ? 日期? ? ? ? 年月日

? ? ? ? time? ? ? ? ? ? ? ? 時分秒

? ? ? ? datetime? ? ? ? 日期? ? ? ? 年月日時分秒,默認值為null,最大值到9999年23:59:59

? ? ? ? timestamp?????時間戳 ? 1970開始 2037年12月31日 ?23:59:59, 默認值為當前系統(tǒng)時間

mysql中沒有boolean類型、通常我們會使用int類型來表示boolean類型 0:false 1:true


3,DDL表的相關(guān)操作

????????????????Data Definition Language數(shù)據(jù)定義語言

關(guān)鍵字:create 創(chuàng)建? ? ? ? drop 刪除? ? ? ? alter 修改? ? ? ? show 展示? ? ? ? databese 數(shù)據(jù)庫

一,庫的基本操作

? ? ? ? 1,查看所有數(shù)據(jù)庫

show database

?????????2,創(chuàng)建數(shù)據(jù)庫

#語法一:create database 數(shù)據(jù)庫名 create database day01;#語法二:create database if not exists 數(shù)據(jù)庫名(如果不存在此數(shù)據(jù)庫再創(chuàng)建)

? ? ? ? 3,刪除數(shù)據(jù)庫

#語法:drop database 數(shù)據(jù)庫名; drop database day01;

? ? ? ? ?4,選中數(shù)據(jù)庫

#語法:use 數(shù)據(jù)庫名 use day01;

選中數(shù)據(jù)庫,數(shù)據(jù)庫系統(tǒng)中一般會有多個數(shù)據(jù),我們對數(shù)據(jù)庫操作時,不需要寫數(shù)據(jù)庫名,但我們要保證我們操作的數(shù)據(jù)庫是哪一個數(shù)據(jù)庫,此時我們用選中數(shù)據(jù)庫來決定我們的操作是對選中的數(shù)據(jù)庫有效,當我們選中數(shù)據(jù)庫時,數(shù)據(jù)庫名稱會變粗,例如:

? ? ? ? ?5,查看創(chuàng)建數(shù)據(jù)庫語句

#語句:show create database 數(shù)據(jù)庫名 show create database day01;#除此之外我們根據(jù)需求,修改show后面的語句來查看其他語句的創(chuàng)建或修改語句

二,表的操作

關(guān)鍵字:show 展示?? ? ?create 創(chuàng)建? ? ? ? table 表? ? ? ? drop 刪除

? ? ? ? 1,查看所有表

show table;

? ? ? ? 2,創(chuàng)建表

#語法 create table 表名(字段1 字段類型,字段2 字段類型,...字段n 字段類型 );create table student( #創(chuàng)建學生表sid int, #id號sname varchar(20), #姓名ssex char(2) #性別 );#我們可以在table 后面加上if not exists 表示如果沒有此表,再創(chuàng)建

? ? ? ? 3,刪除表

#語法 drop table 表名 drop table student;

? ? ? ? 4,查看表結(jié)構(gòu)

#語法 desc 表名 desc student;

? ? ? ? 5,查看創(chuàng)建表語句

#語句 show create table 表名 show create table student

三,修改表

關(guān)鍵字:alter 修改? ? ? ? ? ? ? ? ? add 添加列? ? ? ?????????????????????????drop 刪除

??????? ? ? ?rename 表名修改? ? ? ?change 列名及類型修改? ? ? ? ?modlify 修改列的類型

? ? ? ? 1,修改表名

#語法 alter table 表名 rename 新表名 alter table student rename stu;

? ? ? ? 2,修改列名

#語法 alter table 表名 change 原列名 新列名 列的類型 alter table student change sname name varchar(20);

? ? ? ? 3,修改列的類型

#語法 alter table 表名 modify 原列名 新類型; alter table student modify sname char(10);

? ? ? ? 4,添加列

#語法:alter table 表名 add 新列名 類型 alter table student add sclass varchar(20);

? ? ? ? 5,刪除列

#語法:alter table 表名 drop 列名 alter table student drop sclass;

modify與change區(qū)別
? ?1、modify關(guān)鍵字只能修改列的類型、change關(guān)鍵字既可以修改列的類型也可以修改列的名稱


4,DML表中數(shù)據(jù)的增刪改

????????????????Data Manipulation Language數(shù)據(jù)操作語言

一,插入字段(新增數(shù)據(jù))

? ? ? ? 1,不指定字段插入

#語法 插入單個表(表中字段對應值) insert into 表名 values (值1,值2,值3,值4) 默認情況下需要給所有的列賦值insert into student values (1,"kenken","男");

注意事項:
? ? 1、有多少列對應就應該有多少值
? ? 2、如果插入的是數(shù)值直接給值、除數(shù)值以外用雙引號|單引號都可以

? ? ? ? 2,指定字段插入

#語法:insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3)insert into student (sid,sname,ssex) values (1,"kenken","男");#在指定字段添加數(shù)據(jù)時,可以添加部分數(shù)據(jù) #例如:insert into 表名 (列名2,列名3) values (值2,值3)insert into student (sname,ssex) values ("kenken","男");

注意事項:
? ? 1、聲明的列和值要一一對應
? ? 2、如果插入的是數(shù)值直接給值、除數(shù)值以外用雙引號|單引號都可以

? ? ? ? 3,字段插入部分值第二種方式

#語法:insert into 表名 set 列名=值 insert into student set sname="kenken"; #只添加一個值 insert into student set id=2,sname="maimai"; #只添加兩個值

注意事項:
? ?1、列和值要一一對應
? ? 2、如果插入的是數(shù)值直接給值、除數(shù)值以外用雙引號|單引號都可以

? ? ? ? 4,批量插入

#語法:insert into 表名 (列1,列2,列3) values (值1,值2,值3),(值1,值2,值3); insert into student (sid,sname,ssex)values (1,"kenken","男"),(2,"maimai","nv");

注意:
?? ?1. 整型、浮點型 不需要加引號 ,字符型和日期類型 需要加引號
?? ?2. 插入的值必須滿足類型和約束
?? ?3. 值和列名一一對應
?? ?4. 如果約束:(對當前列進行限制保證當前列數(shù)據(jù)的有效性和準確性)是 null 和 default ?可以不插入

二,刪除字段

? ? ? ? 1,刪除單個字段

#語法 delete from 表名 [where 條件] delete from student where sid=1; #刪除sid為1的字段

? ? ? ? 2,刪除多個字段

#語法:delete from 表名 [where 條件] delete from student where sid in(1,2); #刪除sid為1,2的字段#可以根據(jù)需求在in后面的括號里添加要刪除的字段 #或者 delete from student where sid=1,sname="maimai";

? ? ? ? 3,刪除所有

#語法 delete from 表名 truncate table 表名

注意事項:

????????delete刪除和truncate刪除的區(qū)別

????????????????方式上:delete刪除是逐行刪除、truncate是刪除整張表、然后再創(chuàng)建一張一模一樣的表結(jié)構(gòu)
? ? ? ? ????????效率上:truncate刪除效率要高于delete
? ? ? ? ????????回滾上:delete刪除數(shù)據(jù)可以回滾(可以找回來)truncate一旦刪除數(shù)據(jù)將無法找回
? ? ? ? ????????自增序列上:delete刪除會保留原有的自增序列、而truncate不會保留

三,修改

? ? ? ? 1,修改單個字段數(shù)據(jù)

#語法:update 表名 set 列1=值1,列2=值2,列3=值3 [where 條件] update student set sname="lala" where sid = 1;#where 后面的條件是要告訴計算機要修改那一條數(shù)據(jù),set后面的是列名=新數(shù)據(jù)

? ? ? ? 2,修改多個字段數(shù)據(jù)

#1,不加條件 #語法:update 表名 set 列=值; update student set ssex="男"; #所有字段的ssex列改為男#2,部分字段修改成同一種值 #語法:update 表名 set 列=值 where 條件 update student set ssex="男" where sname in("kenken","maimai"); #sname為kenken和maimai的字段ssex值改為男

今天就寫這么多吧,剩下的看明天能不能寫完。。。。

?

總結(jié)

以上是生活随笔為你收集整理的mysql数据库基本知识点整理笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。