初始SQL語句 簡單使用
- 2019 年 10 月 8 日
- 筆記
初始SQL語句 簡單使用
- SQL語言共分為四大類:
- DQL (Data QueryLanguage )數據查詢語言
- DML(Data manipulation language)數據操縱語言
- DDL(Data definition language)資料庫定義語言
- DCL(Data Control Language)資料庫控制語言
#DDL資料庫定義語言 創建庫、創建表 #DML資料庫操縱語句存數據,刪除數據,修改數據,查看 #DCL控制許可權 # grant/revoke # 庫 # create database 資料庫名; # 創建庫 # show databases; # 查看當前有多少個資料庫 # select database();# 查看當前使用的資料庫 # use 資料庫的名字; # 切換到這個資料庫(文件夾)下 # 表操作 # 查看當前文件夾中有多少張表 # show tables; # 創建表 # create table student(id int,name char(4)); # 刪除表 # drop table student; # 查看錶結構 # desc 表名; # 操作表中的數據 # 數據的增加 # insert into student values (1,'gkf'); # insert into student values (2,'gandan'); # insert into userinfo values (1,'gkf','gkf318'),(2,'gandan','6666'),(3,'goudan','9999');多行添加 # 數據的查看 # select * from student; # 修改數據 # update 表 set 欄位名=值 # update student set name = 'goudan'; # update student set name = 'gandan' where id=2; # 刪除數據 # delete from 表名字; # delete from student where id=1;
- 初識sql語句 ; 代表一個語句的結束
#進入mysql客戶端 $mysql mysql> select user(); #查看當前用戶 mysql> exit (回車) # 也可以用q quit退出 # 默認用戶登陸之後並沒有實際操作的許可權 # 需要使用管理員root用戶登陸 $ mysql -uroot -p # mysql5.6默認是沒有密碼的 #遇到password直接按回車鍵 mysql> set password = password('root'); # 給當前資料庫設置密碼 # 創建帳號 mysql> create user 'gkf'@'192.168.10.%' IDENTIFIED BY '123';# 指示網段可以連接 mysql> create user 'gkf'@'192.168.10.5' # 指示某機器可以連接 mysql> create user 'gkf'@'%' #指示所有機器都可以連接 mysql> show grants for 'eva'@'192.168.10.5';查看某個用戶的許可權 # 遠程登陸 $ mysql -uroot -p123 -h 192.168.10.3 # 給帳號授權 mysql> grant all on *.* to 'gkf'@'%'; mysql> flush privileges; # 刷新使授權立即生效 # 創建帳號並授權 mysql> grant all on *.* to 'gkf'@'%' identified by '123' # 查看錶的欄位基礎資訊: desc 表名; 或 describe 表名; # 查看編碼相關: show variables like '%chara%'; # 查看所有表: show tables; # 創建表: create table 表名 (id int,name char(4)); # 查看錶結構: show create table 表名;#(G可以格式化顯示) # 查詢當前資料庫支援的存儲引擎: mysql> show engines G; #(G格式化的意思) # 查看當前的默認存儲引擎: show variables like '%engine%'; #(%代表其他內容) # 創建表並且指定引擎: create table t3 (id int,name char(4)) engine=memory; #(engine = "指定引擎")
- 簡單的增刪改查
1. 操作文件夾(庫) 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 刪除: drop database db1; 2. 操作文件(表) 先切換到文件夾下:use db1 增:create table t1(id int,name char); 查:show tables; 改:alter table t1 modify name char(3); alter table t1 change name name1 char(2); 刪:drop table t1; 3. 操作文件中的內容(記錄) 增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); 查:select * from t1; 改:update t1 set name='sb' where id=2; 刪:delete from t1 where id=1; 清空表: delete from t1; #如果有自增id,新增的數據,仍然是以刪除前的最後一樣作為起始。 truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始, *auto_increment 表示:自增 *primary key 表示:約束(不能重複且不能為空);加速查找
數據操作 增 刪 改 查
- 增加 insert
- insert into 表名 values (數據1…),(數據2…)
- 所有的在這個表中的欄位都需要按照順序被填寫在這裡
- insert into 表名(欄位名,欄位名…) values (值1,值2),(值1,值2);
- 所有在欄位位置填寫了名字的欄位和後面的值必須是一一對應
- insert into 表名(欄位名,欄位名…) values (值….),(值….),(值….)
- 所有在欄位位置填寫了名字的欄位和後面的值必須是一一對應
- value單數與values複數 ,一次性寫入一行數據,一次性寫入多行數據, 一般全用 values
- 示列
表 id,name,age insert into t1 value (1,'gkf',23) insert into t1 values (1,'gkf',23),(2,'gandan',17) insert into t1(name,age) value ('gkf',23) insert into t1(name,age) values ('gkf',23),('gandan',17) #第一個角度 寫入一行內容還是寫入多行 insert into 表名 values (值....) insert into 表名 values (值....),(值....),(值....) #第二個角度 是把這一行所有的內容都寫入 insert into 表名 values (值....) 指定欄位寫入 insert into 表名(欄位1,欄位2) values (值1,值2) #插入查詢結果 insert into 表名(欄位1,欄位2,欄位3…欄位n) select (欄位1,欄位2,欄位3…欄位n) from 表2 where …;
- 刪除 delete
- delete from 表 where 條件;
- 更新 update
- update 表 set 欄位=新的值 where 條件;
- update mysql.user set password=password(『123』) where user=』root』 and host=』localhost』;
- password=password(『123』)調用的方法,密文存入資料庫
- 查詢 select語句
- select * from 表
- select 欄位,欄位.. from 表
- select distinct 欄位,欄位.. from 表 # 按照查出來的欄位去重
- select 欄位*5 from 表 # 欄位數字值 四則運算 顯示運算完的結果
- select 欄位 as 新名字,欄位 as 新名字 from 表 # 給查出欄位取名字
- select 欄位 新名字 from 表 # 給查出欄位取名字
作 者:郭楷豐