標籤:key first 多列 之間 增刪改查 多行注釋 sel insert sum
mysql(一)
sql語句
sql是Structured Query Language(結構化查詢語言 (SQL))的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。
在使用它時,只需要發出“做什麼”的命令,“怎麼做”是不用使用者考慮的。SQL功能強大、簡單易學、使用方便,已經成為了資料庫操作的基礎,並且現在幾乎所有的資料庫均支援sql。
sql規範
<1> 在資料庫系統中,SQL語句不區分大小寫(建議用大寫) 。但字串常量區分大小寫。建議命令大寫,表名庫名小寫;
<2> SQL語句可單行或多行書寫,以“;”結尾。關鍵詞不能跨多行或簡寫。
<3> 用空格和縮排來提高語句的可讀性。子句通常位於獨立行,便於編輯,提高可讀性。
SELECT
*
FROM
tb_table
WHERE
NAME
=
"YUAN"
;
<4> 注釋:單行注釋:--
多行注釋:/*......*/
<5>sql語句可以折行操作
<6> DDL,DML和DCL
-- --SQL中 DML、DDL、DCL區別 .
-- -- DML(data manipulation language):
-- 它們是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來對資料庫裡的
-- 資料進行操作的語言
--
-- -- DDL(data definition language):
-- DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)
-- 的結構,資料類型,表之間的連結和約束等初始化工作上,他們大多在建立表時使用
--
-- -- DCL(Data Control Language):
-- 是資料庫控制功能。是用來設定或更改資料庫使用者或角色許可權的語句,包括(grant,deny,revoke等)
-- 語句。在預設狀態下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權
-- 力執行DCL
SQL動作陳述式
-- 1.建立資料庫(在磁碟上建立一個對應的檔案夾)
create database [if not exists] db_name [character set xxx]
-- 2.查看資料庫
show databases;查看所有資料庫
show create database db_name; 查看資料庫的建立方式
-- 3.修改資料庫
alter database db_name [character set xxx]
-- 4.刪除資料庫
drop database [if exists] db_name;
-- 5.進入某一資料庫
建立一張表
切換資料庫 use db_name; -- 注意:進入到某個資料庫後沒辦法再退回之前狀態,但可以通過use進行切換
查看當前使用的資料庫 select database();
資料表的增刪改查
-- 文法
create table tab_name(
field1 type[完整性條件約束條件],
field2 type,
...
fieldn type
)[character set xxx];
-- 建立一個員工表employee
create table employee(
id int primary key auto_increment ,
name varchar(20),
gender bit default 1, -- gender char(1) default 1 ----- 或者 TINYINT(1)
birthday date,
job varchar(20),
salary double(4,2) unsigned,
resume text -- 注意,這裡作為最後一個欄位不加逗號
);
/* 約束:
primary key (非空且唯一) :能夠唯一區分出目前記錄的欄位稱為主鍵!
unique
not null
auto_increment :用於主鍵欄位,主鍵欄位必須是數字類型
*/
查看錶資訊
desc tab_name 查看錶結構 show columns from tab_name 查看錶結構 show tables 查看當前資料庫中的所有的表 show create table tab_name 查看當前資料庫表建表語句
修改表結構
-- (1)增加列(欄位)
alter table tab_name add [column] 列名 類型[完整性條件約束條件][first|after 欄位名];
alter table user add addr varchar(20) not null unique first/after username;
#添加多個欄位
alter table users2
add addr varchar(20),
add age int first,
add birth varchar(20) after name;
-- (2)修改一列類型
alter table tab_name modify 列名 類型 [完整性條件約束條件][first|after 欄位名];
alter table users2 modify age tinyint default 20;
alter table users2 modify age int after id;
-- (3)修改列名
alter table tab_name change [column] 列名 新列名 類型 [完整性條件約束條件][first|after 欄位名];
alter table users2 change age Age int default 28 first;
-- (4)刪除一列
alter table tab_name drop [column] 列名;
-- 思考:刪除多列呢?刪一個填一個呢?
alter table users2
add salary float(6,2) unsigned not null after name,
drop addr;
-- (5)修改表名
rename table 表名 to 新表名;
-- (6)修該表所用的字元集
alter table student character set utf8;
刪除表
drop table_name;
mysql資料庫第一彈