SQL學習之一基礎命令

一、SQL語法

1、數據庫表

一個數據庫通常包含一個或多個表。每個表由一個名字標識,表包含帶有數據的行。

2、大小寫

SQL對大小寫不敏感。

3、SQL語句後的分號

某些數據庫要求在每條SQL命令的末尾使用分號,比如mysql。

4、SQL的DML和DDL

可以把SQL分爲兩個部分:DML(data manipulation language數據操作語言)和DDL(data definition language數據定義語言)

查詢和更新數據的指令構成了SQL的DML部分:

select —— 從數據庫表中讀取數據

update —— 更新數據庫表中的數據

delete —— 從數據庫表中刪除數據

insert into —— 向數據庫表中插入數據

SQL的DDL部分指創建或刪除表格,更新表結構,定義索引,規定表之間的鏈接,施加表間的約束的命令。

create database —— 創建新數據庫

alter database —— 修改數據庫

create table —— 創建新表

alter table —— 更新表結構

drop table —— 刪除表

create index —— 創建索引

drop index —— 刪除索引

二、創建一個實例

以MySQL爲例:

mysql> create database study;
mysql> use study;
mysql> create table students(id int auto_increment primary key,name varchar(255),sex char(10));
mysql> insert into students (name,sex) values ('zhangsan','man'),('lisi','woman'),('wangwu','man'),('zhaoliu','woman');
mysql> select * from students;

wKioL1esHpvDR-S2AAASAe8xhjo097.png

注意:在MySQL中值除了數字之外,都需要用''包含。

三、基礎SQL語句

1、select:用於從表中獲取數據。

格式:select 列名 from 表名;

例子:

①從students表中選取所有的學生姓名:

mysql> select name from students;

②從students表中選取所有的學生姓名和性別:

mysql> select name,sex from students;

多個列名之間用逗號隔開。

③查看students表中的所有數據:

mysql> select * from students;

“*”代表所有的列名。

2、distinct:在表中,可能包含有重複的數據,但是有時希望僅僅列出不同的值。這時使用distinct返回唯一不同的值。

格式:select distinct 列名 from 表名;

例子:

①從students表中列出所有的性別(……):

mysql> select distinct sex from students;
+-------+
| sex   |
+-------+
| man   |
| woman |
+-------+        man和woman各被列出一次。

3、where:用於有條件地從表中獲取數據,通常和select一起使用。

格式:select 列名 from 表名 where 列名 運算符 值;

這裏的運算符包含=(等於)、<>(或!=,不等於)、>=(大於等於)、<=(小於等於)、>(大於)、<(小於)、between(在某個範圍內)、like(以某種模式)

例子:

①從students表中列出所有性別爲“man”的學生:

mysql> select name from students where sex = 'man';

這樣會列出‘zhangsan’,‘wangwu’二個值。

②從students表中列出所有ID不超過3的學生:

mysql> select name from students where id <= 3;

這樣會列出‘zhangsan’,‘lisi’,‘wangwu’三個值。

③從students表中列出所有ID在2和3之間的學生:

mysql> select name from students where id between 2 and 3;

這樣會列出‘lisi’,‘wangwu’二個值。不同的數據庫對兩個邊界值(2和3)的處理方式不同,mysql會列出包含2和3的列,但是有些數據庫不會列出。

4、and和or:用於對一個以上的記錄進行過濾。可以在where子句中把兩個或多個條件結合起來。

例子:

①從students表中列出ID不超過3,且性別爲女的學生姓名:

mysql> select name from students where id <=3 and sex='woman';

這樣會列出‘lisi’一個值。

5、order by:用於對獲取的結果進行排序。默認是對結果進行升序排序,可以使用desc關鍵字對結果進行降序排序。

例子:

①對students表中的姓名按照字母順序顯示:

mysql> select name from students order by name;

②對students表中的姓名按照id由大到小顯示:

mysql> select id,name from students order by id desc;

6、insert into:用於向表中插入新的行(數據)。

格式:insert into 表名 values (值1,值2,……);

向指定的列插入數據:insert into 表名 (列1,列2,……)values (值1,值2,……);

例子:

①向students表中插入一行,id 5,姓名 qianqi,性別 woman:

mysql> insert into students values (5,'qianqi','woman');

②向students表中插入兩行:

mysql> insert into students (name,sex) values ('sunba','man'),('wujiu','man');

一個()裏是一行,多行用逗號“,”隔開。

7、update:用於修改表中的數據。

格式:update 表名 set 列名=新值 where 列名=某值;兩個列爲不同的列。

例子:

①將students表中zhangsan的性別改爲woman:

mysql> update students set sex='woman' where name='zhangsan';

8、delete:用於刪除表中的行(數據)。

格式:delete from 表名 where 列名=值;

例子:

①從students表中刪除姓名爲wujiu的行:

mysql> delete from students where name='wujiu';

②刪除students表中所有的行:

mysql> delete from students;或者
mysql> delete * from students;

這樣只會刪除表中的所有數據,並不會刪除表結構、索引、屬性。

9、alter:用於在數據表中添加、修改、刪除列,修改表名稱。

①向表中添加一列:

格式:alter table 表名 add 列名 數據類型;

例子:向students表中添加一列‘age’,數據類型‘int’:

mysql> alter table students add age int;

②修改表中某一列的列名:

格式:alter table 表名 change 現在的列名 修改後的列名 數據類型;

例子:修改students表中‘name’爲‘perons’:

mysql> alter table students change name persons varchar(255);

③修改表中某一列的數據類型:

格式:alter table 表名 modify 列名 修改後的數據類型

例子:將students表中persons的數據類型改爲char(100):

mysql> alter table students modify persons char(100);

④修改表名

格式:alter table 表名 rename 修改後的表名;

例子:將students表的表名改爲learners:

mysql> alter table students rename learners;

⑤刪除表中的某一列

格式:alter table 表名 drop 列名;

例子:刪除learners表中的age列:

mysql> alter table learners drop age;

10、drop:用來刪除數據庫表、索引。

①刪除數據庫:

格式:drop database 數據庫名

②刪除數據表:

格式:drop table 數據表名

③刪除索引,用於MySQL的語法:

格式:alter table 表名 drop 索引名稱

11、primary key:主鍵,唯一標識數據庫表中的每條記錄。

主鍵必須唯一,且不能包含空值。每個表都應該有一個主鍵,並且每個表只能有一個主鍵。

在實例中是把id設爲了主鍵,在創建表的時候在id後面加上primary key。

12、auto_increment:設置主鍵自增長。








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章