從安裝數據庫到增刪改查
apt install mariadb-server
Undefined
安裝好后初始化
mysql_secure_installation
Undefined
查
查詢現有的庫
show databases;
SQL
進入庫
use mysql;
Perl
查詢表
show tables;
SQL
查詢表結構
desc mysql;
SQL
查詢表內容
select * from mysql;
C#
查詢創建數據庫信息
select create database mysql;
Lua
查詢表創建信息
select create table use;
Lua
條件查詢
select name,age from user where name="wang";
SQL
增
創建數據庫
CREATE DATABASE school
SQL
創建表
create table db(id int,name varchar(10),sex enum("m","f"),age int);
SQL
增加數據
insert into db(id,name,sex,age) values(1,"wing","m",18); //字符必須引用
C#
安裝表字段順序插入
insert into db values(4,"xiaosan","f",10);
SQL
插入新增指定的數據
insert into t1 set id=6,math=65; //新增數據可以只插入指定的數據
C#
更新數據
update db1 set name="wang" where id=1; //條件是id
Bash
改
修改表名
rename table db1 to t1;
CSS
添加新字段
alter table db1 add job int(10);
SQL
修改數據類型
mysql> alter table t1 modify chinese int(5) not null;
SQL
修改名稱、數據類型、修飾符
mysql> alter table t1 change chinese china int(6);
SQL
刪
刪除表字段
alter table db1 drop wang;
SQL
刪除表
delete table db1;
SQL
刪除多張表
drop table t1,t2,t3;
SQL
刪庫
drop database 數據庫名;
SQL
復制表
復制查詢內容
create table t10(select * from t3); //創建表的時候把另一個表的內容全部復制來
C#
也可以復制指定查詢的字段
create table t10(select id,name from t3);
SQL
復制指定查詢的表
insert into t3 select * from t10 where id=9; //復制指定的表里的指定內容
C#
進階
進階創建表
創建表字段
CREATE TABLE ces (id INT PRIMARY KEY AUTO_INCREMENT NOT NULL, //主鍵唯一,id自增,不能為空name VARCHAR(20) NOT NULL,sex ENUM('male', 'female') DEFAULT 'male' NOT NULL, //不填默認為hir_data DATE NOT NULL,post VARCHAR(50),job VARCHAR(100),gongzhi DOUBLE(15, 2) NOT NULL,office INT,dep_id INT
);
SQL
進階插入表字段?按照順序插入表內容
INSERT INTO ces (name, sex, hir_data, post, job, gongzhi, office, dep_id)
VALUES
('jack', 'male', '2018-02-02', 'instructor', 'teach', 5000, 501, 100),
('tom', 'male', '2018-02-03', 'instructor', 'teach', 5500, 501, 100),
('robin', 'male', '2018-02-02', 'instructor', 'teach', 8000, 501, 100),
('alice', 'female', '2018-02-02', 'instructor', 'teach', 7200, 501, 100),
('wing', 'male', '2018-02-02', 'hr', 'hrcc', 600, 502, 101),
('harry', 'male', '2018-02-02', 'hr', NULL, 6000, 502, 101),
('emma', 'female', '2018-02-06', 'sale', 'salecc', 20000, 503, 102),
('christine', 'female', '2018-02-05', 'sale', 'salecc', 2200, 503, 102),
('zhuzhu', 'male', '2018-02-05', 'sale', NULL, 2200, 503, 102),
('gougou', 'male', '2018-02-05', 'sale', '', 2200, 503, 102);
SQL
進階查詢
條件查詢
SELECT DISTINCT post FROM ces; //不顯示重復
SQL
算數
SELECT name, gongzhi*2 FROM ces; //工資乘以2
SQL
大于小于
select gongzhi from ces where gongzhi>500 and gongzhi<10000
C#
反過來
select gongzhi from ces where not gongzhi>5000 ; //工資不大于5000的
C#
匹配字符
select gongzhi from ces where gongzhi BETWEEN 2000 AND 5000; //取反也是not
C#
查詢為空
select job from ces where job is null; //查詢為空
C#
select job from ces where job is not null;//不為空
C#
按內容查詢或
SELECT gongzhi FROM ces WHERE salary=4000 OR salary=5000 OR salary=6000 ;
SQL
SELECT gongzhi FROM ces WHERE salary IN (4000,5000,6000,9000) ;
SQL
排序
SELECT gongzhi FROM ces WHERE order by gongzhi; //從小到大
SQL
SELECT gongzhi FROM ces WHERE order by gongzhi desc;//大到小
SQL
按分組查詢
SELECT dep_id,GROUP_CONCAT(name) FROM ces group by dep_id;
VB.Net
包含查詢
SELECT * from ces where name like '%J%';//名字里面包含j的
SQL
函數
COUNT()
: 用于計算指定列或表中的行數。MAX()
: 用于找到指定列或表中的最大值。MIN()
: 用于找到指定列或表中的最小值。AVG()
: 用于計算指定列或表中的平均值。DATABASE()
: 用于返回當前數據庫的名稱。USER()
: 用于返回當前用戶的名稱。NOW()
: 用于返回當前日期和時間。SUM()
: 用于計算指定列或表中數值的總和。PASSWORD()
: 用于對字符串進行加密,通常用于用戶密碼的存儲。MD5()
: 用于計算字符串的 MD5 哈希值。SHA1()
: 用于計算字符串的 SHA1 哈希值。POWER()
: 用于計算一個數的指定次冪。
數據類型
-
整數 int類型
-
浮點型 float 單精度 duoble 雙精度 decimal 定點型
-
字符串類型 char varchar 能存放跟多
-
枚舉類型 enum 固定的數只能選一個 set 兩個都可以選
-
日期類型
year 1978年 可以寫成 78 2008年 可以寫成08
data 2022年3月8號,可以寫成如下格式輸入給mysql 2022/03/08 2022-03-08
time 050510 05:05:10
權限管理
創建用戶
create user 'wang'@'%' identified by 'qwer123123';
SQL
授權用戶
grant all on *.* to 'wang'@'%' identified by 'qwer123';
C#
5.7版本數據庫可以直接授權沒有的用戶,使用授權語句會創建不存在的用戶。 刪除用戶
DROP USER 'wang'@’localhost’;
SQL
會刪除localhost的用戶,可以存在其他授權地址的同名用戶。 用語句在庫里面刪除
delete from mysql.user where user='wang' AND host='localhost';\
SQL
刷新權限
FLUSH PRIVILEGES;
Undefined
查看自己的授權
SHOW GRANTS\G
SQL
看其他用戶權限
SHOW GRANTS FOR admin1@'%'\G
Kotlin
配置文件設置跳過密碼
skip-grant-tables
SQL
改用戶名
RENAME USER old_name TO new_name;
CSS
其他配置以及語句
狀態
show status;
Lua
進程列表
show processlist;
SQL