MySQL(2)数据库管理
文章目錄
- 一、MySQL數據庫管理
- 1.1庫和表
- 二、查看數據庫結構
- 2.1 查看數據庫結構
- 1.查看當前服務器中的數據庫
- 2.查看數據庫中包含的表
- 3.查看表的結構(字段)
- 4. 查看mysql版本
- 2.2 SQL語句
- 2.3 創建及刪除數據庫和表
- 1) 創建新的數據庫
- 2) 創建新的表
- 3) 刪除指定的數據表
- 4) 刪除指定的數據庫
- 2.4 管理表中的數據記錄
- 1) 向數據表中插入新的數據記錄
- 2) 查詢數據記錄
- 3) 修改、更新數據表中的數據記錄
- 4) 在數據表中刪除指定的數據記錄
- 2.5 修改表名和表結構
- 1) 修改表名
- 2) 擴展表結構(增加字段)
- 3)修改字段(列)名,添加唯一鍵
- 4) 刪除字段
- 2.6 使用 if 判斷 創建表并測試自增和填充
- 三、數據表高級操作
- 3.1 克隆表——將數據表的數據記錄生成到新的表中
- 3.1.1 方法一:先創建再導入
- 3.1.2 方法二:創建的時候同時導入
- 3.2 清空表——刪除表內的所有數據
- 3.2.1 方法一:deldte刪除
- 3.2.2 方法二:truncate刪除
- 3.2.2 方法三:創建臨時表
- 3.3 創建外鍵約束
一、MySQL數據庫管理
1.1庫和表
數據庫–>數據表–>行(記錄):用來描述一個對象的信息
_______________ 列(字段):用來描述對象的一個屬性
常用的數據類型
int :整型
float :單精度浮點 4字節32位
double :雙精度浮點 8字節64位
char :固定長度的字符類型
varchar :可變長度的字符類型
text :文本
image :圖片
decimal(5,2) :5個有效長度數字,小數點后面有2位
二、查看數據庫結構
2.1 查看數據庫結構
1.查看當前服務器中的數據庫
SHOW DATABASES; #大小寫不區分,分號“;”表示結束
2.查看數據庫中包含的表
USE 數據庫名;
SHOW TABLES;
查看mysql數據庫中的表
3.查看表的結構(字段)
USE 數據庫名;
DESCRIBE [數據庫名.]表名;
可縮寫成:DESC 表名;
相對路徑查看:
絕對路徑查看
4. 查看mysql版本
select version(); #在mysql內查看mysql版本
mysql -V #在linux系統中查看mysql版本
2.2 SQL語句
SQL語句用于維護管理數據庫,包括數據查詢、數據更新、訪問控制、對象管理等功能。
SQL語句分類:
語句 代表的意思
DDL 數據定義語言,用于創建數據庫對象,如庫、表、索引等
DML 數據操縱語言,用于對表中的數據進行管理
DQL 數據查詢語言,用于從數據表中查找符合條件的數據記錄
DCL 數據控制語言,用于設置或者更改數據庫用戶或角色權限
2.3 創建及刪除數據庫和表
1) 創建新的數據庫
CREATE DATABASE 數據庫名;
2) 創建新的表
CREATE TABLE 表名 (字段1 數據類型,字段2 數據類型[,…][,PRIMARY KEY (主鍵名)]);
#主鍵一般選擇能代表唯一性的字段不允許取空值(NULL),一個表只能有一個主鍵。
例:
CREATE DATABASE ali;
USE ali;
create table market(id int(4) NOT NULL, name char(10), age int(3), PRIMARY KEY(id));
DESC market;
3) 刪除指定的數據表
DROP TABLE [數據庫名.]表名; #如不用USE進入庫中,則需加上數據庫名
刪除方法一:進入目標庫
刪除方法二:在要刪除的表前面加上庫名
4) 刪除指定的數據庫
DROP DATABASE 數據庫名;
2.4 管理表中的數據記錄
1) 向數據表中插入新的數據記錄
INSERT INTO 表名(字段1,字段2[,…]) VALUES(字段1的值,字段2的值,…);
例:
insert into market(id,name,age,passwd) values(2,‘lisi’,20,PASSWORD(‘112233’));
#PASSWORD(‘112233’):查詢數據記錄時,密碼字串以加密形式顯示;若不使用PASSWORD(),查詢時以明文顯示。
INSERT INTO KY08 VALUES(2,‘lisi’,90.5,654321);
2) 查詢數據記錄
SELECT 字段名1,字段名2[,…] FROM 表名 [WHERE 條件表達式];
例:查詢全部數據
SELECT * FROM market;
例:查詢指定數據
select id,name from market where id=4;
例:以列表方式豎向顯示
select from market\G;
例:只顯示頭2行
select * from market limit 2;
例:顯示第2行后的前2行
select * from market limit 2,2;
3) 修改、更新數據表中的數據記錄
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 條件表達式];
例:修改age
update market set age=19 where id=4;
update market set age=20,passwd=‘111111’ where id=4; #同時修改age和passwd
4) 在數據表中刪除指定的數據記錄
DELETE FROM 表名 [WHERE 條件表達式];
例:刪除當前表中id為4的數據
delete from market where id=4;
2.5 修改表名和表結構
1) 修改表名
ALTER TABLE 舊表名 RENAME 新表名;
例:
alter table market rename sales;
2) 擴展表結構(增加字段)
ALTER TABLE 表名 ADD address varchar(50) default ‘地址未填寫!’;
#default ‘地址未填寫!’:表示此字段設置默認值 地址未填寫!;可與 NOT NULL 配合使用
3)修改字段(列)名,添加唯一鍵
ALTER TABLE 表名 CHANGE 舊列名 新列名 數據類型 [unique key];
例:修改字段并添加唯一鍵,然后創建數據測試。
alter table market change name user_name char(30) unique key;
#CHANGE可修改字段名、數據類型、約束等所有項。
4) 刪除字段
ALTER TABLE 表名 drop 字段名;
例:刪除表中 passwd字段
ALTER TABLE market drop passwd;
2.6 使用 if 判斷 創建表并測試自增和填充
use ali; #先進入指定的庫
create table if not exists yy (
id int(4) zerofill primary key auto_increment,
name char(20) not null,
sid int(18) not null unique key,
age int(3) not null,
address char(100));
分析:
#if not exists:表示檢測要創建的表是否已存在,如果不存在就繼續創建
#int(4) zerofill:表示若數值不滿4位數,則前面用“0”填充,例0001
#auto_increment:表示此字段為自增長字段,即每條記錄自動遞增1,默認從1開始遞增;自增長字段數據不可以重復;自增長字段必須是主鍵;如添加的記錄數據沒有指定此字段的值且添加失敗也會自動遞增一次
#unique key:表示此字段唯一鍵約束,此字段數據不可以重復;一張表中只能有一個主鍵, 但是一張表中可以有多個唯一鍵
#not null:表示此字段不允許為NULL
測試:創建數據測試自動補齊和自增長。
測試:數據創建失敗,id的補齊和自增情況
三、數據表高級操作
3.1 克隆表——將數據表的數據記錄生成到新的表中
3.1.1 方法一:先創建再導入
create table test01 like info; #通過 LIKE 方法,復制 info 表結構生成 test01 表
insert into test01 select * from info; #導入數據
3.1.2 方法二:創建的時候同時導入
create table test02 (select * from info);
show create table test02\G; #獲取數據表的表結構、索引等信息
3.2 清空表——刪除表內的所有數據
3.2.1 方法一:deldte刪除
DELETE清空表后,返回的結果內有刪除的記錄條目;DELETE工作時是一行一行的刪除記錄數據的;如果表中有自增長字段,使用DELETE FROM 刪除所有記錄后,再次新添加的記錄會從原來最大的記錄 ID 后面繼續自增寫入記錄。
delete from info; #delete from 表名;
3.2.2 方法二:truncate刪除
TRUNCATE 清空表后,沒有返回被刪除的條目;TRUNCATE 工作時是將表結構按原樣重新建立,因此在速度上 TRUNCATE 會比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表內數據后,ID 會從 1 開始重新記錄
truncate table info;
3.2.2 方法三:創建臨時表
臨時表創建成功之后,使用SHOW TABLES命令是看不到創建的臨時表的,臨時表會在連接退出后被銷毀。 如果在退出連接之前,也可以可執行增刪改查等操作,比如使用 DROP TABLE 語句手動直接刪除臨時表。
##添加臨時表test03
create temporary table test03 (
id int(4) zerofill primary key auto_increment,
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));
show tables; ## 查看當前庫中所有表
insert into test03 values(1,‘zhangsan’,123456789,‘watch a film’); ##在臨時表中添加數據
select * from test03; ##查看當前表中所有數據
quit ##退出數據庫
mysql -u root -p ##重新登錄后進行查看
select * from test03; ##查看之前創建的臨時表中所有數據,發現已經被自動銷毀
3.3 創建外鍵約束
create table pro (pid int, pname char(20));
create table student (id int, name char(10), age int, proid int);
alter table pro add constraint PK_pid primary key (pid);
alter table student add constraint FK_proid foreign key (proid) references pro (pid);
pro表結構如下:
student表結構如下:
注意:與外鍵關聯的子表的字段必須設置為主鍵。要求主表外鍵字段和子表的字段具備相同的數據類型、字符長度和約束。
#為子表添加一個主鍵約束。主鍵名建議以“PK_”開頭。
alter table pro add constraint PK_pid primary key (pid);
#為 branch 表添加外鍵,并將 student表的 proid 字段和 pro 表的 pid 字段建立外鍵關聯。外鍵名建議以“FK_”開頭。
alter table student add constraint FK_proid foreign key (proid) references pro (pid);
測試刪除:從表的數據未刪除,主表的數據無法刪除
查看和刪除外鍵約束:
desc test03;
show create table student\G #查看表約束
alter table student drop foreign key FK_proid; 解除外鍵約束
alter table student drop key FK_proid; 刪除外鍵
desc student;
總結
以上是生活随笔為你收集整理的MySQL(2)数据库管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL(1)数据库介绍,配置MySQ
- 下一篇: MySQL(3)数据库用户管理