SQL概念:結構化查詢語言(SQL = Structured Query Language),也是一種編程語言(資料庫查詢和程式設計語言),可以用於數據的存取及查詢,更新,管理關係型資料庫系統ps: 不同資料庫系統之間的SQL不能完全相互通用;分類針對操作的對象不同,可以分成不同語言1: 數據操作( ...
SQL
概念:結構化查詢語言(SQL = Structured Query Language),
也是一種編程語言(資料庫查詢和程式設計語言),可以用於數據的存取及查詢,更新,管理關係型資料庫系統
ps: 不同資料庫系統之間的SQL不能完全相互通用;
分類
針對操作的對象不同,可以分成不同語言
1: 數據操作(數據管理)語言 DML(Data Management Language)
1): 查詢數據 DQL
2): 增, 刪, 改 DML
2: 數據定義語言 DDL(Data Definition Language) --比如表的定義
3: 數據控制語言 DCL(Data Control Language)
****************************************************************************************************************
資料庫, 表, 數據三者之間的關係
表是數據的載體, 資料庫又是表的容器
****************************************************************************************************************
資料庫操作
mysql> show databases; --查看所有的資料庫
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
創建資料庫
語法: create database [if not exists] db_name [數據選項]
例: create database student_system;
例: create database if not exists student_system; --會先判斷student_system是否已經存在,如果存在就不會創建,可以避免異常
例:C:\WINDOWS\system32>mysqladmin -uroot -p create bbbb --可以通過mysqladmin來進行創建
*********************************************************************
資料庫的命名規則
1: 見名知意, 建議是使用下劃線的方式
2: 可以使用任意的字元,比如數字,符號,中文等
create database 胖胖;
3: 如果命名很特殊,比如是以純數字或者關鍵詞來命名時,就要使用限定符來包裹(限定符指反引號``);
create database `123456`;
4: 是否區分大小寫(這個當前的操作系統有關);
5: 資料庫的名字都可以使用反引號來創建
***********************************************************************
ps: 資料庫創建時會形成一個目錄,目錄名是資料庫名,如果資料庫名是特殊字元,那麼文件名會經編碼形式來表式
目錄下麵會有一個db.opt文件保存著資料庫的選擇信息;
***********************************************************************
資料庫的相關操作
1: show databases; --查看所有的資料庫
2: drop [if exists] database bbbb; --刪除指定的資料庫
3: show create database student_system; --查看資料庫(student_system)創建信息
+----------------+------------------------------------------------------------------------+
| Database | Create Database |
+----------------+------------------------------------------------------------------------+
| student_system | CREATE DATABASE `student_system` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------------+------------------------------------------------------------------------+
4: alter database db_name [指定的操作] --修改資料庫信息
例: alter database student_system character set 'utf8';
********************************************************************************************************************
表的相關操作
表的創建
創建語法: create table [if not exists] tbl_name(列結構)[選項]
表是數據的載體, 資料庫又是表的容器,所以在創建表之前,需要先定它所屬的那個資料庫,
表一定屬性某一個資料庫的
1: 可以在創建表的時候, 在表名之前指明所屬的資料庫
create table `student_system`.student(
name varchar(20),
sex varchar(3),
age int
);
2: 可以先使用use db_name指明當前預設的資料庫,然後再創建表
use student_system
create table teacher(
name varchar(20),
sex varchar(3),
age int
);
3: show tables; --查看所有的表,也要先指明當前預設的資料庫
4: show create table teacher; --查看創建表(teacher) 創建信息
show create table teacher\G
5: describe teacher; --查看表(teacher)的結構
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| sex | varchar(3) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
desc teacher; --可以簡寫describe teacher;
6: drop table [if exists] tbl_name; --刪除表(包裹表結構)
例: drop table student;
例: drop table if exists student;
***************************************************************************************************************
修改表
修改表名
語法:rename table old_table_name to new_table_name
例: rename table student to student_1;
例: rename table student_2 to student_1, teacher to teacher_1; --可以同時修改多個表名
例: rename table student_1 to `test`.student_2; --可以跨資料庫重命名, 可以通過這個表重命名的方式來對資料庫重命名
修改列的定義
新加列(add)
alter table student_1 add id int;
刪除列(drop)
alter table student_1 drop id;
修改列定義(modify)
alter table student_1 modify name varchar(10);
重命名列(change)
alter table student_1 change age student_age int(3);
*******************************************************************************************************
表數據操作(增刪改查)
插入數據(創建數據create)
語法: insert into 表名(欄位列表) values(值列表)
例: insert into teacher_1(name,age) values('胖胖', 18);
例: insert into teacher_1 values('小胖','男', 16); --如果沒有指定欄位列表,那麼要插入的值要和列中的欄位順序一樣
insert into teacher_1(name,age) values('小未', 19);
insert into teacher_1 values('阿哈','女',18);
查詢數據(讀取數據read)
語法: select 欄位列表 from 表名 where 查詢條件
例: select name,age from teacher_1;
例: select * from teacher_1; --如果欄位列表使用*號來代替, 那麼表示查詢所有的欄位
例: select * from teacher_1 where name = '胖胖'; --可能使用查詢條件進行數據過濾,拿到想要的數據;
例: select * from teacher_1 where 1; --where 1表示條件永遠成立
select * from teacher_1 where 0;
修改數據(update)
語法: update 表名 set 欄位=新值,... where 條件
例: update teacher_1 set sex='女' where name = '小胖';
update teacher_1 set sex = '保密', age = 15, name = '阿呵' where name = '阿哈';
刪除數據(delete)
語法: delete from 表名 where 條件
例: delete from teacher_1 where age = '18';
例: delete from teacher_1; --如果沒有條件進行刪除,則會刪除整個表的刪除(不同於drop table teacher_1)
ps: 在刪除數據時,一定要給一個具有嚴格邏輯判斷條件,不然很容易造成數據誤刪除,最後造成數據的損失
curd(create update read delete)--增刪改查