SQL結構化查詢語言 (SQL)及Mysql基本操作,結構化查詢語言 (SQL)sql

來源:互聯網
上載者:User

SQL結構化查詢語言 (SQL)及Mysql基本操作,結構化查詢語言 (SQL)sql

SQL結構化查詢語言 (SQL)
資料操作(管理)語言(DML,DataManipulationLanguage)(DQL+DML)
DQL 查詢:獲得資料。
DML 管理:增加,刪除,修改資料。

資料定義語言 (Data Definition Language)(DDL,DataDefinitionLanguage)對儲存資料的格式進行定義。

資料庫控制語言(DCL,DataBaseControlLanguage)針對資料庫軟體服務進行操作。


SQL=DDL,DML(DQL+DML),DCL

**資料庫操作:**DDL 建立資料庫
create database [if not exists]  資料庫名 [資料庫選項] ;eg:create database liguodong;create database `1234`;    特殊字元串create database `create`;  關鍵字set names GBK;create database `成都`;

資料庫名:可以是任一字元(目錄可以建立成功),但特殊的字元需要使用反引號包裹。標識符的大小寫區別於作業系統的大小寫特徵。
If not exists 表示在資料庫不存在時建立。
資料庫選項中,可以設定資料庫字元集(character set utf8)和校對集(collate utf8_general_ci)。

註:
語句要求要使用語句結束符 ;

標識符(資料庫)命名規則:
大小寫取決於當前作業系統(認為是區分的)
見名知意。推薦使用底線方式。

標識符的字元:
使用任一字元,數字,符號甚至是中文。但是一些特殊的組合,例如純數字組合,特殊符號,包括mysql是內部關鍵字,應該使用標識符限定符來包裹。
限定符:反引號。
中文可以,但是不建議使用。(字元集編碼要正確)set names GBK;

每當我們建立一個資料庫,在mysql的資料目錄,形成一個目錄,目錄名是資料庫名(如果是特殊字元,則使用編碼的形式儲存)。目錄內,存在一個檔案,用於儲存資料庫的選項資訊。db.opt

查詢資料庫

查詢已經存在的資料庫:

show databases [like 'pattern']show databases;

like pattern 指的是顯示符合哪些命名規則的。不存在指的是所有的資料庫。
查詢建立資料庫的語句:show create database db_name;

注意:並不是只有使用者可以建立資料庫,還有mysql內部維護自己的資料庫。

刪除資料庫
drop database [if exists] db_name;  慎用drop database test;

If exists 表示資料庫存在才刪除。
當刪除一個資料庫時,同時刪除該資料庫相關的目錄及其目錄內容。

修改資料庫
alter database db_name [修改指令]alter database test character set gbk;

指令:資料庫屬性的修改。

修改名字:
方式一、簡單的可以直接修改目錄名。(並不適用所用方式)
方式二、將資料庫內容匯出,建立一個資料庫,將內容匯入,刪除舊資料庫。

表操作

資料庫是表的容器。
表必須資料某個資料庫。
可以通過.文法指明所屬的資料庫。eg: 庫.表 database.table。如果任何的標識符,出現的特殊字元,需要使用反引號包裹。不同的標識符需要分別包裹。
進行表操作時,都會指定當前的預設資料庫。
use db_name;
注意:選擇了預設的資料庫,只會影響預設行為。可以操作任何的資料庫。

建立表
create table [if not exists] tbl_name (列定義) [表選項] create table [if not exists] tbl_name like old_tbl_name; create table [if not exists] tbl_name select 語句; eg:create table liguodong.classroom(stu_id varchar(20),stu_name  varchar(20),stu_data  date);

每當建立一個表,會在資料目錄建立對應的檔案儲存表資訊。
先分析,需要儲存的實體資料,擁有哪些屬性,這些屬性應該如何儲存。
例如:學生資訊
學號,姓名,出生日期
列定義:
列名:列的資料類型[列的屬性 (約束)]

查看錶
show tables [from db_name] [like ‘pattern’]; 如果沒有資料庫名,則採用當前資料庫,如果沒有like,則獲得所有表。eg:use liguodong;show tables;show tables from liguodong;

表名首碼:
為了區分相同邏輯表名不同應用,給邏輯表名,增加首碼,形成真實表名。

/*學生管理系統*/create table info_student(stu_name varchar(20),stu_no varchar(20));/*線上考試系統*/create table exam_student(stu_name varchar(20),stu_no varchar(20));

show tables like 'exam_%';%稱之為萬用字元,表示任一字元的任意個數的組合。

show create table exam_student;

當一個資料非常多的時候,可以使用\G作為語句結束符。

describe liguodong.exam_student;

資料庫對應目錄,而資料庫中的內容對應目錄的內容,檔案

刪除表
drop table [if exists] tbl_name;eg:drop table exam_student;表不存在,不能刪除,會報告錯誤。drop table if exists exam_student;不會報錯,因為已經做了一次判斷。
修改表

重新命名表名:rename table tbl_name to new_tbl_name; 。可以同時針對多個表進行重新命名,甚至可以跨資料庫。
修改表結構:alter table。可以提供對錶選項和列定義的修改。

重名名相當於剪下操作eg:rename table classroom to stu_class;支援同時修改多個表名。rename table classroom to stu_class,info_student to exam_user;支援跨資料庫重新命名。rename table exam_user to `1234`.user;重新命名資料庫(資料庫不支援rename)建立一個新的資料庫,就的資料庫內的表,都rename到新的資料庫內,刪除舊的資料庫。

修改列定義:

add     增加  可以同時增加多個列,使用括弧括起來多個列的定義。modify  修改change  重新命名drop    刪除

修改表結構:

alter table exam [add|drop|change|modify]eg:添加:alter table info_student add age int;desc info_student; 刪除:alter table info_student drop age;desc info_student;修改:alter table info_student modify stu_no varchar(40);desc info_student;重新命名:alter table info_student change age stu_age int;desc info_student;

修改表選項

alter table info_student character set gbk;

相關文章

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.