數據庫指的是文件的集合,操作這個集合需要用到SQL語句,SQL語句是由socket連接的。
一,啓動數據庫:
Linux下啓動服務器進程:進入管理員身份,執行 service mysqld start,然後執行 mysql -u root -p,如果有密碼的話則輸入密碼,無密碼就直接enter。
由上圖信息可知數據庫的版本和版權,選擇幫助方式,命令結尾以';'或者'\g'結尾;
二,數據庫語句:
SQL語句基本分爲以下幾種:
- DDL:數據定義語句(針對結構的增刪改查)create drop alter show;
- DML:數據操縱語句(針對數據的增刪改查) insert delete update select;
- DCL:數據控制語句(針對權限的控制)grant :賦權限,revoke:回收權限;
數據庫的結構主要包括庫,表,索引,視圖;
查看數據庫結構的語句爲:show x_names;例如,查看數據庫可以用:show databases;
以下介紹DDL語句:
創建表的SQL語句:create database base_name;其中base_name代表數據庫的庫名。如果該庫存在則創建失敗,爲了保證程序的健壯性,我們可以這樣寫:create database if not exists base_name;創建或者刪除其他結構也可以這樣寫。
創建其他結構需要指明在哪個數據庫裏面創建,語句爲:use database_name;
創建表:create table table_name
{
字段1名稱,字段1類型,字段1約束
字段2名稱,字段2類型,字段2約束
}
查看錶結構:desc table_name(字段信息) ; 或者 show create table table_name;
修改表:
以下介紹DML語句:
給表中插入數據:insert into tb_name values( "001","zhangsan",18,"nan");insert into tb_name(id,name,age,sex) values ( "001","zhangsan",18,"nan");
插入多條數據:insert into tb_name values( "001","zhangsan",18,"nan"),
( "001","zhangsan",18,"nan"),
( "001","zhangsan",18,"nan");
批量插入時用load source ;
- 修改字段類型及大小:alter table table_name modify X_name varchar(20);此語句用來將X_name字段的類型以及大小修改爲varchar(20);
- 修改字段名稱:alter table table_name change X_name mname varchar(20);此語句用來將X_name的字段名稱修改爲mname並且將其類型及大小改爲varchar(20);
- 添加新字段:alter table table_name add new_name int [after X_name];添加一個新字段new_name放在X_name字段後面,放在第一行的話中括號內添first;默認新加入的字段在最後一行。
- 刪除一個字段:alter table table_name drop X_name;刪除X_name 字段;
- 修改表名:alter table table_name rename new_tbname;將名爲table_name的表名改爲new_tbname;
刪除數據:delete from tb_name where name = " zhangsan ";(條件刪除)
truncate table tb_name;(刪除表中所有元素,破壞表的結構,不計入日誌文件)
查詢數據:select * from tb_name;
去重查詢:select distinct age from tb_name;
查詢後排序:order by ASC(升序)/DESC(降序);(默認情況下是升序排列)
分組查詢:group by:select id ,sum(score) from table_name group by id;
等值查詢效率很低(笛卡爾乘積方式匹配),連接查詢效率高。
連接查詢包括外連接,內鏈接;外連接包括左外連接,右外連接和全外連接;
左連接:left join 左表保留,右表補空;右連接:right join 右表保留,左表補空;全外連接:full [outer] join:都補空;
內連接:inner join(不補空);
聯合查詢:union 聯合兩個表到一起且自動去重;union all不去重;聯合查詢的字段和類型都需要匹配。