mysql数据库基本知识点整理笔记
學習目標:
- SQL的基本分類
- MYSQL數據庫中的數據類型
- DDL表的相關操作
- DML表中數據的增刪改
學習內容:
????????數據庫系統的結構
????????????????1. 一個DBMS(數據庫系統)中 可以有多個數據庫(database)
????????????????2. 一個數據庫(database)中 可以有多個表(table)
????????????????3. 一個表中 可以有多條數據 多個字段(列)
比如說,把一個數據庫比化成一個excel文件,一個excel文件中可以有多個表,一個單獨的表中我們可以列多行數據。
1,SQL基本分類
? ? ? ? 1)DDL 數據定義語言:
對數據庫的創建和刪除 以及對數據庫表的創建刪除和修改 關鍵字:create、drop
? ? ? ? 2)DML 數據操作語言:
對數據庫表中數據的增 刪 改 關鍵字:insert、delete、update
? ? ? ? 3)DQL 數據查詢語言:
對數據庫表中數據 查詢 關鍵字:select
? ? ? ? 4)DCL 數據控制語言:
指定用戶 分配權限 關鍵字:grant、revoke
2,MYSQL數據庫中的數據類型
? ? ? ? 1)整形
? ? ? ? ? ? ? ? tinyint / smallint / int / bigint? ? ? ? ?byte(-128? ?127)? ? ? ? short? ? int? ?long
? ? ? ? 2)浮點型
? ? ? ? ? ? ? ? float(n,m)? ? ? ? double(n,m)? ? ? ? decimal(n,m)? 準確值 n和m可以省略
? ? ? ? ? ? ? ? ? ? ? ? n:整數位+小數位的個數
? ? ? ? ? ? ? ? ? ? ? ? m:小數位的個數
例如:decimal(6,2) 總共能存6位數字,末尾2位是小數,字段最大值 ?9999.99
? ? ? ? 3)字符型,
????????實際開發中,varchar相對比較多
? ? ? ? varchar(n)? ????????變長字符串 ? n必選 ?保存字符最大個數 ? ? ? ?性能低
例如: 定義姓名數據類型varchar(10), 可以存儲的姓名對應的字符個數0-10, 10表示最多可以存儲的字符個數, 實際客戶姓名叫 AB, 在數據庫中存儲占有的空間就是2, 不是10
? ? ? ? char(n)????????????????定長字符串 ? ?n可選 默認為1 保存字符最大個數 ? ? 性能高
例如: 定義姓名數據類型char(10), 可以存儲的姓名對應的字符個數0-10, 10表示最多可以存儲的字符個數, 實際客戶姓名叫 AB, 在數據庫中存儲占有的空間還是10, 不是10
? ? ? ? 4)日期
? ? ? ? data? ? ? ? ? ? ? ? 日期? ? ? ? 年月日
? ? ? ? time? ? ? ? ? ? ? ? 時分秒
? ? ? ? datetime? ? ? ? 日期? ? ? ? 年月日時分秒,默認值為null,最大值到9999年23:59:59
? ? ? ? timestamp?????時間戳 ? 1970開始 2037年12月31日 ?23:59:59, 默認值為當前系統時間
mysql中沒有boolean類型、通常我們會使用int類型來表示boolean類型 0:false 1:true
3,DDL表的相關操作
????????????????Data Definition Language數據定義語言
關鍵字:create 創建? ? ? ? drop 刪除? ? ? ? alter 修改? ? ? ? show 展示? ? ? ? databese 數據庫
一,庫的基本操作
? ? ? ? 1,查看所有數據庫
show database?????????2,創建數據庫
#語法一:create database 數據庫名 create database day01;#語法二:create database if not exists 數據庫名(如果不存在此數據庫再創建)? ? ? ? 3,刪除數據庫
#語法:drop database 數據庫名; drop database day01;? ? ? ? ?4,選中數據庫
#語法:use 數據庫名 use day01;選中數據庫,數據庫系統中一般會有多個數據,我們對數據庫操作時,不需要寫數據庫名,但我們要保證我們操作的數據庫是哪一個數據庫,此時我們用選中數據庫來決定我們的操作是對選中的數據庫有效,當我們選中數據庫時,數據庫名稱會變粗,例如:
? ? ? ? ?5,查看創建數據庫語句
#語句:show create database 數據庫名 show create database day01;#除此之外我們根據需求,修改show后面的語句來查看其他語句的創建或修改語句二,表的操作
關鍵字:show 展示?? ? ?create 創建? ? ? ? table 表? ? ? ? drop 刪除
? ? ? ? 1,查看所有表
show table;? ? ? ? 2,創建表
#語法 create table 表名(字段1 字段類型,字段2 字段類型,...字段n 字段類型 );create table student( #創建學生表sid int, #id號sname varchar(20), #姓名ssex char(2) #性別 );#我們可以在table 后面加上if not exists 表示如果沒有此表,再創建? ? ? ? 3,刪除表
#語法 drop table 表名 drop table student;? ? ? ? 4,查看表結構
#語法 desc 表名 desc student;? ? ? ? 5,查看創建表語句
#語句 show create table 表名 show create table student三,修改表
關鍵字: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區別
? ?1、modify關鍵字只能修改列的類型、change關鍵字既可以修改列的類型也可以修改列的名稱
4,DML表中數據的增刪改
????????????????Data Manipulation Language數據操作語言
一,插入字段(新增數據)
? ? ? ? 1,不指定字段插入
#語法 插入單個表(表中字段對應值) insert into 表名 values (值1,值2,值3,值4) 默認情況下需要給所有的列賦值insert into student values (1,"kenken","男");注意事項:
? ? 1、有多少列對應就應該有多少值
? ? 2、如果插入的是數值直接給值、除數值以外用雙引號|單引號都可以
? ? ? ? 2,指定字段插入
#語法:insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3)insert into student (sid,sname,ssex) values (1,"kenken","男");#在指定字段添加數據時,可以添加部分數據 #例如:insert into 表名 (列名2,列名3) values (值2,值3)insert into student (sname,ssex) values ("kenken","男");注意事項:
? ? 1、聲明的列和值要一一對應
? ? 2、如果插入的是數值直接給值、除數值以外用雙引號|單引號都可以
? ? ? ? 3,字段插入部分值第二種方式
#語法:insert into 表名 set 列名=值 insert into student set sname="kenken"; #只添加一個值 insert into student set id=2,sname="maimai"; #只添加兩個值注意事項:
? ?1、列和值要一一對應
? ? 2、如果插入的是數值直接給值、除數值以外用雙引號|單引號都可以
? ? ? ? 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. 如果約束:(對當前列進行限制保證當前列數據的有效性和準確性)是 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的字段#可以根據需求在in后面的括號里添加要刪除的字段 #或者 delete from student where sid=1,sname="maimai";? ? ? ? 3,刪除所有
#語法 delete from 表名 truncate table 表名注意事項:
????????delete刪除和truncate刪除的區別
????????????????方式上:delete刪除是逐行刪除、truncate是刪除整張表、然后再創建一張一模一樣的表結構
? ? ? ? ????????效率上:truncate刪除效率要高于delete
? ? ? ? ????????回滾上:delete刪除數據可以回滾(可以找回來)truncate一旦刪除數據將無法找回
? ? ? ? ????????自增序列上:delete刪除會保留原有的自增序列、而truncate不會保留
三,修改
? ? ? ? 1,修改單個字段數據
#語法:update 表名 set 列1=值1,列2=值2,列3=值3 [where 條件] update student set sname="lala" where sid = 1;#where 后面的條件是要告訴計算機要修改那一條數據,set后面的是列名=新數據? ? ? ? 2,修改多個字段數據
#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值改為男今天就寫這么多吧,剩下的看明天能不能寫完。。。。
?
總結
以上是生活随笔為你收集整理的mysql数据库基本知识点整理笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 组态王简单动画
- 下一篇: 5G协议下载地址及介绍