mysql_複習
阿新 • • 發佈:2020-02-22
文章目錄
資料庫跟表的增刪改查
資料庫包含 表\函式\儲存過程 建立資料庫 CREATE DATABASE[ IF NOT EXISTS] 資料庫名 資料庫選項 資料庫選項: CHARACTER SET charset_name COLLATE collation_name create database d1 default character set gbk; # 建立表 create table t1(age int,name varchar(10)); # 給上表增加列 alter table t1 add column addr varchar(50); # 刪除表 drop table t1; # 表的增刪改查 create table t1(age int,name varchar(10)); insert into t1(age,name) values(10,"丁丁"),(11,"泥濘"); # 插入資料 select * from t1; # 查資料 # 修改丁丁的age update t1 set age=12 where name="丁丁"; select * from t1; # 查詢泥濘資料 select * from t1 where name="泥濘"; # 刪除 delete from t1 where name="丁丁"; create table t1(age int,"泥濘"); # 插入資料 select * from t1; # 查資料 # 修改丁丁的age update t1 set age=12 where name="丁丁"; select * from t1; # 查詢泥濘資料 select * from t1 where name="泥濘"; # 刪除 delete from t1 where name="丁丁"; show databases; create table boy(name varchar(10),age int,addr varchar(50)); create table girl(name varchar(10),addr varchar(50)); insert into boy(name,age,addr) values ("張飛",32,"北京"),("謝霆鋒",30,"南京"),("李四",25,"天井"),("甲流",33,"酒精"),("魯北",24,"南海"); select * from boy; insert into girl(name,addr) values ("瀉立停",("佳美","府東"),("盼盼",23,"背黑鍋"),("欣欣",34,"安防"),("玲玲","安慰人"); select * from boy; select * from girl; # 單表查詢 use d1; # 去重查詢 select distinct age from boy; # 查詢age在25-30之間的 insert into boy values("彪子",28,"韓國"); insert into boy values("鬼小四",26,"幾盆"); select * from boy where age between 25 and 30; # 查詢age 25和30的資料 固定範圍 select * from boy where age in (25,30); # 查詢name中,有四的列出來,%萬用字元,select * from boy where name like "%四%"; select * from boy where name like "%四"; select * from boy where name like "彪%"; # 排序輸出 select * from boy order by age; # 降序 select * from boy order by age desc; # 顯示前兩個 select * from boy limit 2; # 查看錶中欄位 desc t1; # 統計age數量,count(1)是表頭 insert into boy values("王八那","as"); insert into boy values("阿斯鋼","阿三哥"); select age,count(1) from boy group by age; # 多表查詢 # 內連線 as後面跟的是查詢出來的表頭,on 後面是查詢的條件 # 兩張表的交集 select a.`name` as "男名字",b.`name`as "女名字" from d1.boy a inner join d1.girl b on a.age=b.age; # 左連線,以左邊的a.age查詢為主,# 這裡就不得不說下我們玩的DNF了,建立一個賬號,但是裡面有很多角色,# 左表為基礎,右表有就好了 insert into girl values("阿美美","阿哥"); insert into girl values("慧海","筆記"); select a.`name` as "男名字",a.age as "男年齡",b.`name`as "女名字",b.age as "女年齡" from d1.boy a left join d1.girl b on a.age=b.age; # 右連線 insert into girl values("阿美美",b.age as "女年齡" from d1.boy a right join d1.girl b on a.age=b.age; # 系統函式 # 聚合函式 # 求表的sum,max min avg select sum(age),max(age),min(age),avg(age) from boy; # 字串匯合 select name,CONCAT("角色名",name,addr) as concat from boy; -- 將name欄位的四換成一 select name,replace(name,'四','一') from boy; # 日期函式 select now(); # 加兩天 select DATE_ADD("2019-1-26",interval 2 DAY); select DATE_SUB("2019-1-26",interval 2 DAY);
自定義函式
show function status;
delimiter $$
drop FUNCTION if EXISTS myAddFunc $$
create function myAddFunc(a int,b int)
returns int
begin
return a+b
end $$
delimiter;