MySql資料庫操作

來源:互聯網
上載者:User

標籤: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資料庫操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.