標籤:localhost 資料庫操作 databases windows 輸入密碼
MySql資料庫操作
–登入MySql:——–
Windows環境進入cmd後,輸入mysql –h localhost –u root –p,再輸入密碼就可以啟動mysql;其中localhost是mysql伺服器所在的ip,如果是本機可以用localhost。
–資料庫相關操作——–
create database db_name(資料庫名稱):建名為db_name的資料庫
show databases:查看已經存在的資料庫
drop database db_name:刪除名為db_name的資料庫
use db_name:操作名為db_name的資料庫
show tables:顯示資料庫中的表
desc table-_name:查看錶名為table_name的表的結構
– 資料庫中表(TABLE)的操作——–
Create table table_name(IDint primary key,NAME varchar(50),AGE int ,SEX varchar(10)):建立表且設定了ID為主鍵
create tabletable_name(stu_id int, course_id int,name varchar(20),grade float,primarykey(stu_id,course_id)):設定了表中stu_id和course_id兩個都為主鍵
外鍵:如果表A的某一個屬性值依賴於表B的主鍵,則稱B為父表,A為子表,A中的這個欄位為A的外鍵,如果父表中的資訊改變,則對應子表的資料也會改變
文法:create tabletable_name01(id int primary key,stu_id int,course_id int ,score float,gradeint,constraint c_fk(外鍵別名) foreign key(stu_id,course_id)references table_name02(stu_id,course_id));table_name02是父表,table_name01是子表,給子表設定了兩個外鍵
表欄位的非空約束:create tabletable_name(id int primary key not null,name varchar(50) not null,stu_id int);設定not null表示欄位不可為空,也就是非空
唯一約束,指欄位中值不能重複:create tabletable_name(id int primary key auto_increment,stu_id int unique,name varchar(20)not null);其中設定了id自動增加,且unique設定了stu_id的值必須唯一性,不能有相同的值存在
E,為表設定預設值,即在沒有插入資料的時候會用預設值代替;
Create table table_name(idint primary key auto_increment,stu_id int unique,name varchar(50) not nullEnglish varchar(20) default ‘zero’);即為Englist欄位設定了預設值為zero;
show create table table_name;查看錶的詳細結構語句
–表的修改操作——–
修改表名:alter table 舊錶名 rename [to] 新表名;把表名更改
修改欄位屬性:Alter tabletable_name modify 屬性名稱 資料類型(修改後的類型)
修改欄位:alter table table_namechange 舊欄位名 新欄位名 新資料類型
增加欄位:alter table table_nameadd 欄位1 資料類型 after 欄位2;在欄位2後面增加欄位1;如果把欄位2改成FIRST即加在最前面
刪除欄位:alter table table_namedrop 欄位名
修改欄位的位置:alter tabletable_name modify 欄位名 First(第一個位置,after 欄位,指定欄位的後面)
更改表的引擎名:alter tabletable_name engine=Mylsam;
刪除表的外鍵約束:alter tabletable_name drop foreign key 外鍵別名
刪除表:
9.1:普通的沒有關聯的表:drop table table_name;
9.2:刪除有關聯的表:先用show create table table_name;查看錶的詳情,看到外鍵的另名,先刪除外鍵,再刪除表格就可以了。
–資料庫的增刪改查操作——–
資料庫的增(insert into)刪(delete)改(update)查(select)操作:
1.添加資料insert into
A增加資料分兩種:1,不指定具體欄位名如:insert into table_name values(值1,值2…)
指定欄位名:insert intotable_name(欄位1,欄位2….)values(值1,值2….);如果是為指定的欄位加資料,只需要寫出需要加資料的欄位即可
同事插入多條資料:insert intotable_name [欄位列表]values(取捨列表1),(取值列表2)…
將一個表的資料插入到別個一張表中:
Insert into table_name1(欄位列表)select (表2欄位)fromtable_name2 where 條件運算式;
2.更新資料(改)操作update
總體操作是:update table_name set欄位1=值1,欄位2=值2…where條件運算式
可以對一定範圍中的資料更改,主要是從where後面的條件來判斷
3.刪除資料操作delete
delete from table_namewhere 條件運算式
Delete from table_name;將會刪除所有資料;
4.查詢資料query
Select 欄位名列表 from table_name [where 條件運算式1] [group by 欄位名[having條件運算式2]][order by 欄位名[ASC(升序)/DESC(降序)]]
單表查詢:select 欄位名 from table_name where 條件
帶in關鍵字查詢:
判斷某個欄位的值是否在指定的集合中,是的話就查出來:select欄位名或* table_name where 欄位名 in(值1,值2…..)
帶between and 關鍵字的查詢:select *或欄位名 from table_name where 欄位名 between 值1 and 值2;尋找的是範圍在值1與值2之間對應的資料;結果是包含兩端的值的
帶like的匹配查詢一個完整字串,可以加%或;%表示任意長度的字串如b%k表示以b開頭,以k對事的任一字元串,而只表示單個字元,如b_k表示以b開始k結束的3個字元的字串
方法:select *或欄位名 from table_name where 欄位名 [not]like 條件;not表示不匹配時
-空值查詢: select *或欄位名 from table_name where 欄位名 is [not]null;即查詢[不]為空白的資料
and與or的多條件查詢:select *或欄位名 from table_name where 條件1 and 條件2;與 from table_name where 條件1 and 條件2;and表示所以條件都必須成立,而or表示只需要其中任何一個條件成立就可以
F,查詢結果不重複:select distinct 欄位名 from table_name;
5.分組查詢
單獨用group by 分組,結果只會顯示一個分組的一條記錄:
Select *或欄位名 from table_name group by 欄位名
group by 和group_concat()函數使用:每個分組的所有欄位都可以顯示
Select 欄位名,roup_coucat(欄位名)from table_name group by欄位名
-group by與集合函數使用:select 欄位名,count(欄位名)fromtable_name group by 欄位名 having count(欄位名) 條件
多欄位分組:select * fromtable_name group by 欄位1,欄位2…
E,group by與with rollup一起用
Select 欄位名,count(欄位名)from table_name group by 欄位名 with rollup
6.用limit限制查詢資料
Select * from table_namelimit a或(limit a,b),前者是顯示從第一條到a條資料,後者是顯示從a條到b條間的資料
7.使用集合函數查詢資料
count()統計資料條數:Select count(*) from table_name
sum()求和:Select 欄位名,sum(欄位名)from table_name where 條件
avg()求平均數:Select avg(欄位名) from table_name group by 欄位名
max與min最大與最小值:Select max(欄位名)/min(欄位名) from table_name;
8.多表串連查詢
- 內串連查詢:兩個以上表中存在意義相同的欄位時,可以用該欄位來串連表進行查詢.如:select 欄位1,欄位2,欄位3…from table_name1,table_name2 wheretable_name1.欄位a=table_name2.欄位b
- 外串連查詢:select 欄位列表from table_name01 left/right jointable_name02 on table_name01.欄位名=talbe_name02.欄位名。Letf表示左連結,right表示右連結
- 複合條件查詢:運用多條件精確查詢
9.用Regex查詢
查詢以特定字元開頭的記錄:select * fromtable_name where 欄位名 regexp ‘^a’以a頭
查詢以特定字元結束的記錄:Select * fromtable_name where regexp ‘xx$;
用符號“.”來代替字串中任意一個字元:Select * from table_name where name regexp ‘^l..y$’;
–表或欄位取別名——–
表的別名:select * fromtable_name t where t.欄位=值;t就是表的別名
欄位的別名:用as關鍵字,如:select t_id as 欄位id from table_name wheret_id=值 ;t_id就是對應欄位的別名,別名可以同真實名一樣使用
–Database Backup——–
mysqldump命令備份:mysqldump –u username –p db_nametable1,table2….>BackupName.sql;//其中db_name是資料庫的名稱,table1..是表名,如果沒有表名將備份 整個資料庫,backupname.sql表示備份檔案的名稱,前面可以加個絕對路徑
備份多個資料庫:Mysqldump -uusername –p –databases db_name1 db_name2… > backupname.sql
備份所有資料庫:Mysqldump –u root–p –all-databases > C:\all.sql
用Mysqlhotcopy工具快速備份
資料庫還原:Mysql –u root –p < backup.sql//其中backup.sql是儲存的資料庫檔案
以上分享來自兄弟連MySQL資料庫培訓,轉載請註明出處。
MySql資料庫操作