国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

SQL語句實例說明 方便學習mysql的朋友

2024-07-24 12:43:24
字體:
來源:轉載
供稿:網友

MySQL中模式就是數據庫

SHOW DATABASES;

show databases;
羅列所有數據庫名稱

CREATE DATABASE <數據庫名>

create database TEST;
創建名為TEST的數據庫

DROP DATABASE <數據庫名>

drop database TEST;
刪除名為TEST的數據庫

USE <數據庫名>

use TEST;
使用名為TEST的數據庫

SHOW TABLES

show tables;
顯示當前數據庫所有表格

SHOW [FULL] COLUMNS FROM <表名>

show [full] columns from <表名>
在MySQL數據庫中顯示表的結構,如果加上full則更加詳細

DESC <表名>

desc TEST;
查看表TEST的結構,同show columns from TEST

SHOW CREATE TABLE <表名>

show create table TEST;

查看表TEST的所有信息,包括建表語句

創建基本表:
CREATE TABLE <表名>
(<列名> <數據類型>[列級完整性約束條件],
<列名> <數據類型>[列級完整性約束條件],
………………
);

create table STUDENT
(
studentId int(30) primary key,
name varchar(255),
address varchar(255)
);
創建名為STUDENT的表格,有屬性studentId,name,address,其中studentId為主鍵

create table TEACHER
(
teacherId int(30),
name varchar(255),
age int(20),
studentId int(30),
primary key (teacherId),
foreign key (studentId) references STUDENT(studentId)
);
創建名為TEACHER的表格,其中teacherId為主鍵,studentId為外鍵,引用STUDENT表的主鍵studentId

修改基本表:

ALTER TABLE <表名> RENAME <修改后表名>

alter table TEACHER rename S;
將TEACHER表的表名改為S

ALTER TABLE <表名> ADD COLUMN <列名> <屬性類型>

alter table TEACHER add column ADDRESS varchar(255);
在表名為TEACHER的表中加入名為ADDRESS的列

ALTER TABLE <表名> CHANGE COLUMN <列名> <修改后列名> <屬性類型>

alter table TEACHER change column ADDRESS address varchar(230);
修改TEACHER表中的列,將ADDRESS的列名改為address

ALTER TABLE <表名> DROP [COLUMN] <列名>

alter table TEACHER drop [column] address;
刪除列名為address的列,column可有可無

刪除基本表:

DROP TABLE <表名> [RESTRICT|CASCADE]
刪除表格


drop table STUDENT restrict;
刪除STUDENT表。受限制的刪除,欲刪除的基本表不能被其他表的約束所引用(如check,foreign key等約束),
不能有視圖,不能有觸發器,不能有存儲過程或函數等。

drop table STUDENT cascade;

若選擇cascade,則該表刪除沒有限制。在刪除基本表的同時,相關的依賴對象,例如視圖,都將被一起刪除。

但是我在MySQL測試的時候給錯誤提示Cannot delete or update a parent row: a foreign key constraint fails,不予以刪除,不知道是什么原因。

關于完整約束性:

參考文章:完整性約束的SQL定義

ALTER TABLE <表名> ADD CONSTRAINT <約束名> <約束條件>

alter table teacher add constraint pk_teacher_id primary key teacher(id);

在teacher表中增加名為pk_teacher_id的主鍵約束。

ALTER TABLE <表名> DROP <約束條件>

alter table teacher drop primary key;

刪除teacher表的主鍵約束。

alter table student add constraint fk_student_teacher foreign key student(teacherId) references teacher(id);

在student表中增加名為fk_student_teacher的約束條件,約束條件為外鍵約束。

索引的建立與刪除:

索引的建立:

CREATE [UNIQUE]|[CLUSTER] INDEX <索引名> ON <表名>(<列名> [次序][,<列名> [次序]]……);

UNIQUE 表明此索引的每一個索引值只對應唯一的數據記錄。

CLUSTER 表示要建立的索引是聚簇索引。

create unique index id_index on teacher(id asc);
對teacher表的id列建立unique索引,索引名為id_index

索引的刪除:

DROP INDEX <索引名> ON <表名>

drop index id_index on teacher;
在teacher表中刪除索引,索引名為id_index

另外的方法:

新建索引:

ALTER TABLE <表名> ADD [UNIQUE]|[CLUSTER] INDEX [<索引名>](<列名> [<次序>],[<列名> [<次序>]]……)

alter table teacher add unique index id_index(id asc);
在teacher表中對id列升序建立unique索引,索引的名字為id_index

刪除索引:

ALTER TABLE <表名> DROP INDEX <索引名>

alter table teacher drop index id_index;
刪除teacher表名為id_index的索引

數據庫索引的建立有利也有弊,參考文章:

數據庫索引的作用和優點缺點(一)數據庫索引的作用和優點缺點(二)數據庫建立索引的原則

數據查詢:

SELECT [ALL|DISTINCT] <目標列表達式> [,<目標列表達式>]……

FROM <表名或視圖名> [<表名或視圖名>]……

[WHERE <條件表達式>]

[GROUP BY <列名1> [HAVING <條件表達式>]]

[ORDER BY <列名2> [ASC|DESC] [,<列名3> [ASC|DESC]]……];

查詢經過計算的值:

select teacherId as id,salary - 100 as S from teacher;

查詢經過計算的值,從teacher表中查詢出teacherId字段,別名為id,并且查詢出salary字段減去100后的字段,別名為S

使用函數和字符串:

select teacherid as id,'birth',salary - 20 as SA, lower(name) from teacher;

<目標表達式>可以是字符串常量和函數等,'birth' 為字符串常量,lower(name)為函數,將name字段以小寫字母形式輸出

消除取值重復的行:

select distinct name from teacher;

如果沒有指定DISTINCT關鍵詞,則缺省為ALL.

查詢滿足條件的元組:

WHERE子句常用的查詢條件:

查詢條件

謂詞

比較

=, >, <, >=, <=, !=, <>, !>, !<

確定范圍

BETWEEN AND, NOT BETWEEN AND

確定集合

IN, NOT IN

字符匹配

LIKE, NOT LIKE

空值

IS NULL, IS NOT NULL

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佛冈县| 北海市| 陈巴尔虎旗| 光泽县| 天长市| 彭阳县| 皮山县| 顺平县| 佛山市| 两当县| 长兴县| 宝清县| 阜阳市| 临西县| 武山县| 聂荣县| 湖南省| 金阳县| 莆田市| 呼和浩特市| 佛教| 开封县| 曲阳县| 沧源| 慈利县| 库车县| 镇坪县| 隆昌县| 彰化市| 江阴市| 富裕县| 永仁县| 建德市| 绥德县| 东台市| 大足县| 静宁县| 洮南市| 永泰县| 辽中县| 开鲁县|