日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库常用操作

發布時間:2023/12/13 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库常用操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

目前最流行的數據庫:

oracle、mysql、sqlserver、db2、sqline

--:單行注釋

#:也是單行注釋

/* 注釋內容*/:多行注釋

mysql -uroot -p密碼:登錄mysql

service mysqld restart
重啟mysql

/etc/my.cnf
mysql的配置文件

/var/lib/mysql
mysql數據庫的數據庫文件存放位置

/var/log
mysql的數據庫的日志輸出存放位置

create database 庫名 default character set =utf8;:創建數據庫

show databases:查看所有數據庫

drop database 數據庫名:刪除數據

備份的語法一:
Mysqldump –uroot –p 要備份哪個數據庫 > 備份到哪去的路徑;

備份語法二:
Mysqldump –uroot –p - -database 要備份哪個數據庫 > 備份到哪去的路徑;

source+sql文件:恢復數據庫

use 數據庫名稱:使用業務數據庫

show tables:查看業務數據庫下有多少張表格

desc 表名:描述表結構

建表語法:
create table 表名字 (列名 數據類型,l列名2 數據類型,…,列名n 數據類型)Engine=INNODB charset=utf8;

表創建好過后添加一列或者多列:
ALTER TABLE 表名 ADD (列名 數據類型,…,列名n 數據類型);

換列名語法:
Alter table 表名 change column 原有的列名 新的列名 對應的數據類型

刪除列:
alter table 表名 drop column 要刪除的列

給列添加注釋:
Alter table 表名 modify column 列名 對應數據類型 comment ‘你要注釋的內容’

添加數據語法:
insert into 表名(列1,列2...列n) values(值1,值2,...值n)

一次增加多條數據:
Insert into 表名(列1,列2,..,列n) values (值1,值2,…..,值n), (值1,值2,…..,值n)

修改數據:
update 表名 set 列名=值 where 條件

Update 可以一次修改多列:
Update 表名 set 列1=值1,列2=值2 where 條件

刪除數據:
delete from 表名 where 條件

刪除整張表的數據:
truncate table 表名

刪除數據庫:
drop

添加默認值:
create table 表名(列名稱 數據類型 default 默認值)

添加非空約束的語法:
alter table 表名modify column 列名 對應的數據類型 not null;

給表添加主鍵約束:
Alter table表名 add constraint primary key PK_表名_需要添加約束的列名 (要添加約束的列)

給表添加外鍵約束:
alter table 表名add constraint foreign key fk_表名 _列名 (需要添加約束的列)references 引用的表 (引用的是哪一列)

Select * from 表名: 查詢這張表里面的所有數據

Select 列名1,…,列名n from 表名:多列查詢

select 列名 from 表名:單列查詢

Select 列名1 as 別名1,列名n as 別名n from 表名:查詢的時候命名別名

Select distinct(需要去除重復的列) from 表名:去重查詢(只能是單列去除重復)

select * from 表名 where 條件:帶條件查詢

?

SQL一共由四個部分組成:

DQL 數據查詢語言 select

DML 數據操作語言 insert,update,delete

DDL 數據定義語言 create,drop,alter

DCL 數據控制語言 grant,revoke,commit,rollback


Between and : 在……之間

Select * from 表名 where 列名 in (范圍):在范圍內取值

Select * from 表名 where 列名 is null:判斷該列是否有空值

Select * from 表名 where 列名 is not null:判斷該列是否有非空的值;

select * from 表名 where 列名 like ‘_或者%值’:模糊查詢
_只匹配一個字符
%匹配任意個字符

數據庫里面的排序order by
Order by后面可以跟上兩個單詞 ASC DESC
語法:select * from 表名 order by 要排序的列;

select * from 表名 limit m,n:從m行開始 取n行顯示

表連接語法:
內鏈接語法:Select * from 表1 join 表2 on 主鍵=外鍵
左外鏈接語法:Select * from 表1 left join 表2 on 主鍵=外鍵
右外鏈接語法:Select * from 表1 right join 表2 on 主鍵=外鍵

?

表連接:

第一步:看這幾張有沒有相同的列
第二步:確定這個列是哪張表的主鍵
第三步:確定好了過后直接寫on 主鍵=外鍵
第四步:修改*,把*號換成一些需要顯示列

自連接:

第一步:將張表以命名別名的方式拆分成兩張表
第二步:找準篩選出垃圾數據的關系
第三步:分清左邊的數據來自于哪張表,右邊的數據來自于哪張表
第四步:才開始寫 on 主鍵=外鍵
第五步:換*號,顯示需要展示出來數據

字符函數:
concat(列1,'字符'); 合并函數
select concat(userName,userPwd) '用戶名和密碼' from user;
select concat('Hello','World') from dual;

日期函數:
sysdate(); 查詢當前系統時間函數
select sysdate() from dual;
select * from user;
dual??
dual是數據庫為了讓我們試驗函數的作用或者功能所提供的一張偽表;
偽表就是實際上不存在,但是在數據庫當中依然可以使用,表名就叫dual
轉換函數

數字函數

其它函數

統計函數,又稱聚合函數,專門為了統計某一列的值而研發出來的函數
count 統計某一列的非空總行數
sum 統計某一列的總和
max 統計某一列的最大值
min 統計某一列的最小值
avg 統計某一列的平均值

count可以忽略列的數據類型
avg sum max min 只能用于數字類型只上;


having 與where的區別:
相同點:having和where都是用于條件篩選
不同點:having多與group by 結合使用,用于分組過后的條件篩選where用于分組之前的篩選

?

子查詢語法:
Select * from 表名 where 列名 in (Select 相同列 from 表名)
Select * from 表名 where 列名 比較運算符 (select 數字列 from 表名)
注意點:如果在where后面嵌套了子查詢,一定要記得把 * 號換成where 后面的那個列名

?

添加索引的語法:
Alter table 表名 add 索引的類型 索引的名字 (需要添加索引的列)
ALTER TABLE `orderdetail`
ADD INDEX `orderdetailNum` (`orderdetailNum`) ;
刪除索引的語法:
Alter table 表 drop 索引類型 索引的名字

?

事務:
Set autocommit=0;
關閉自動提交,開啟事務
Set autocommit=1;
開啟自動提交,關閉事務;
start transaction; -- 開啟一個事務點;記錄原有表中的數據,如果一旦出錯,直接回到這個事務點之上
set autocommit=0; -- 開啟事務

?

視圖:就是一張虛擬表格里面存儲了查詢結果;
特點:隱藏真正的表名,讓人不知道你的表名或者列名真正叫什么

創建試圖的語法:create view 視圖名字 as 查詢語句

刪除視圖語法:drop view 視圖名字

?

?

?

?mysql查詢表內所有列名,并用逗號分隔:

SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",") FROM information_schema.COLUMNS?
WHERE TABLE_SCHEMA = '數據庫名稱' AND TABLE_NAME = '表名'

?

?

當行內容過長時,尾部+\G 將結果以垂直方向輸出。

mysql> select * from db_archivelog\G

?

?

清空自增列的值:

?alter table mr_city AUTO_INCREMENT=1;

?

?

轉載于:https://www.cnblogs.com/yc-c/p/8867239.html

總結

以上是生活随笔為你收集整理的mysql数据库常用操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。