MySQL的基本

MySQL的基本語法

left JOIN 左表匹配右表

  • 有沒有內容所有匹配
SELECT Persons.LastName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
  • 只輸出右邊的表有內容的
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

RIGHT JOIN 關鍵字會右表 (table_name2) 那裏返回全部的行,即便在左表 (table_name1) 中沒有匹配的行。

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

SQL FULL JOIN 關鍵字只要其中某個表存在匹配,FULL JOIN 關鍵字就會返回行。

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

UNION 操做符用於合併兩個或多個 SELECT 語句的結果集。

  • 請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有類似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

刪除表

drop table `MYFirstTable`

刪除數據庫

drop database MY_db

複製表

creat table `NewMYFirstTable` select *from `OldMYFirstTable`

修改數據庫的編碼規則

alter database mydb character set utf8;

建立數據庫的時候設置編碼規則

CREATE DATABASE db_name DEFAULT CHARACTER SET utf8

建立表<加約束)

CREATE TABLE Persons
(
Id_P int NOT NULL,(不接受空值)
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
UNIQUE (Id_P) **約束**

PRIMARY KEY (Id_P) **設置主鍵**
)
SQL UNIQUE 約束
UNIQUE 約束惟一標識數據庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 約束均爲列或列集合提供了惟一性的保證。
  • PRIMARY KEY 約束惟一標識數據庫表中的每條記錄。主鍵必須包含惟一的值。主鍵列不能包含 NULL 值。每一個表都應該有一個主鍵,而且每一個表只能有一個主鍵。mysql

  • 若是表已經存在,擇設置主鍵sql

ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)
  • 撤銷主鍵約束
ALTER TABLE Persons
DROP PRIMARY KEY
  • CHECK 約束規定 "Id_P" 列必須只包含大於 0 的整數
CHECK (Id_P>0)
  • 更新一個數值
update setUpdefault set neme = 'hahhahfrewgerwg' WHERE neme = 'hahhah'

建立索引

  • CREATE INDEX 語句用於在表中建立索引。在不讀取整個表的狀況下,索引使數據庫應用程序能夠更快地查找數據。
    註釋:更新一個包含索引的表須要比更新一個沒有索引的表更多的時間,這是因爲索引自己也須要更新。所以,理想的作法是僅僅在經常被搜索的列(以及表)上面建立索引。
CREATE INDEX index_name
ON table_name (column_name)
  • 刪除索引
DROP INDEX index_name ON table_name

刪除表的數據

TRUNCATE TABLE 表名稱

delete from tableName
//刪除部分數據
DELETE FROM table1 WHERE ...;

添加列,刪除列,改變列的數據類型

如需在表中添加列,請使用下列語法:
ALTER TABLE table_name
ADD column_name datatype

要刪除表中的列,請使用下列語法:
ALTER TABLE table_name 
DROP COLUMN column_name


要改變表中列的數據類型,請使用下列語法:
ALTER TABLE table_name
ALTER COLUMN column_name datatype

//設置讓主鍵自增
咱們一般但願在每次插入新記錄時,自動地建立主鍵字段的值。
咱們能夠在表中建立一個 auto-increment 字段。
下列 SQL 語句把 "Persons" 表中的 "P_Id" 列定義爲 auto-increment 主鍵:數據庫

alter table S_Province modify `ProvinceID` integer auto_increment

添加視圖

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No
咱們能夠查詢上面這個視圖:
SELECT * FROM [Current Product List]
 

時間的格式

MySQL 使用下列數據類型在數據庫中存儲日期或日期/時間值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
YEAR - 格式 YYYY 或 YY
SELECT * FROM Orders WHERE OrderDate='2008-12-26'

NULL值

咱們如何僅僅選取在 "Address" 列中帶有 NULL 值的記錄呢?
咱們必須使用 IS NULL 操做符:編碼

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

數據類型

Snip20170105_1
Snip20170105_2
Snip20170105_3

相關文章
相關標籤/搜索