mysql 修改自增字段起始值不生效_Mysql数据库基本介绍
1、mysql不分大小寫(xiě), 他是存放數(shù)據(jù)的數(shù)據(jù)庫(kù)管理系統(tǒng)字符集使用utf-8,python分大小寫(xiě),r也分大小寫(xiě),常用的數(shù)據(jù)庫(kù)是關(guān)系型數(shù)據(jù)庫(kù),workbench編輯工具,Ctrl+回車(chē)執(zhí)行;
2、一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)下有多個(gè)數(shù)據(jù)庫(kù),一個(gè)數(shù)據(jù)庫(kù)下可以有個(gè)數(shù)據(jù)表,一個(gè)數(shù)據(jù)表下可以有多個(gè)不同的字段,同一個(gè)數(shù)據(jù)表的不同的字段數(shù)據(jù)維度要一樣,一個(gè)字段只能有一個(gè)數(shù)據(jù)類(lèi)型;
3、數(shù)據(jù)庫(kù)的默認(rèn)編碼是utf-8,excel中的默認(rèn)編碼是ansi格式,一種是二進(jìn)制文件,二進(jìn)制文件用記事本打開(kāi)后不是文字,一種是文本文件,文本文件包括csv格式、txt格式,CSV文件是用逗號(hào)隔開(kāi)的,TXT文件是用空格隔開(kāi)的;
4、create database +數(shù)據(jù)庫(kù)名稱(chēng);
show create database+數(shù)據(jù)庫(kù)名稱(chēng);
show databases; 查看所有數(shù)據(jù)庫(kù) show tables; 查看所有表
use + 數(shù)據(jù)庫(kù)名稱(chēng);每次使用數(shù)據(jù)庫(kù)之前,都要先執(zhí)行使用數(shù)據(jù)庫(kù)命令
drop + database +數(shù)據(jù)庫(kù)名稱(chēng);drop + table + 表名; 刪除整個(gè)表或者數(shù)據(jù)庫(kù)
delete from 表名;刪除表中的數(shù)據(jù) delete from fruits where f_id = 'b5';刪除一部分?jǐn)?shù)據(jù);
5、創(chuàng)建數(shù)據(jù)表時(shí),包括類(lèi)型和約束條件;時(shí)間類(lèi)型是time,日期類(lèi)型叫date,timestamp是時(shí)間戳,datetime和timestamp的顯示格式相同,但是存儲(chǔ)的字節(jié)和支持的范圍不同,并且datetime沒(méi)有時(shí)區(qū)的差別,輸入什么就是什么,但是時(shí)間戳有時(shí)區(qū)的區(qū)別,不同的區(qū)域有不同的時(shí)間,是按世界標(biāo)準(zhǔn)時(shí)間格式保存的,時(shí)間戳的取值范圍小于datetime的取值范圍,
浮點(diǎn)數(shù)類(lèi)型包括float、double。double的精度比f(wàn)loat的精度高,如果進(jìn)行數(shù)值比較最好使用decimal類(lèi)型,
char是固定長(zhǎng)度字符,varchar是可變長(zhǎng)度字符,char會(huì)自動(dòng)刪除插入尾部的空格,varchar不會(huì)刪除尾部空格,
常見(jiàn)的運(yùn)算符
6、算數(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、位操作運(yùn)算符
算數(shù)運(yùn)算符:+、-、*、/、%
比較運(yùn)算符:在進(jìn)行判斷時(shí),如果兩個(gè)數(shù)的類(lèi)型不一致,mysql 會(huì)自動(dòng)將類(lèi)型轉(zhuǎn)換成一致的,比較運(yùn)算符的結(jié)果顯示有三種,一種是0,一種是1,一種是null,當(dāng)判斷結(jié)果正確時(shí)則輸出1,否則輸出0;“=”不能用于null的判斷,因此結(jié)果仍然是null ;當(dāng)比較運(yùn)算符為“<=>”安全運(yùn)算符時(shí),則會(huì)輸出1;
約束條件
7、primary key:主鍵約束;一個(gè)表里面必須只有一個(gè)主鍵,一個(gè)主鍵可以有多個(gè)字段組成;not null:非空約束,這樣可以把空值過(guò)濾出去;unique:唯一約束;auto_increment:自增字段一個(gè)表中只能有一個(gè)自增字段,并且必須是逐漸的一部分,在寫(xiě)自增字段之前必須先寫(xiě)上數(shù)據(jù)類(lèi)型和主鍵約束,起到了非空不重復(fù)的目的;default:默認(rèn)值;
8、導(dǎo)入數(shù)據(jù):
load data local infile "文件路徑.txt" 一定要寫(xiě)上擴(kuò)展名 路徑里面不可以有中文,左斜杠變成右斜杠/
into table 表名
fields terminated by 't' 如果是.txt文檔就用t格式,如果是.csv文檔就用逗號(hào)‘,’格式 ignore 1 lines; 如果第一行是標(biāo)題行就用這個(gè)命令,如果第一行不是標(biāo)題行就不需要這個(gè)命令。
如果在安裝或者導(dǎo)入數(shù)據(jù)時(shí),并沒(méi)有設(shè)置為utf8格式,這個(gè)時(shí)候需要寫(xiě)上命令語(yǔ)句,將導(dǎo)入的帶有中文的數(shù)據(jù)不至于亂碼:CREATE DATABASE market DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
驗(yàn)證數(shù)據(jù)的準(zhǔn)確性
直接打開(kāi)數(shù)據(jù)表,跟文本文檔對(duì)比一下,查看一下內(nèi)容和行數(shù),再查看一下表結(jié)構(gòu),
檢查導(dǎo)入的內(nèi)容:select* from 表名;
查看數(shù)據(jù)的行數(shù):select count(*) from 表名;
查看一下數(shù)據(jù)的結(jié)構(gòu):desc 表名;
修改數(shù)據(jù)表
修改表名:alter table (原始表名)emp rename empdep;
修改類(lèi)型:alter table (表名)empdep modify (字段名)(修改后的字段類(lèi)型);注意是類(lèi)型
修改字段名:alter table (表名)empdep change (舊字段名)(新字段名,類(lèi)型);
添加新字段:ALTER TABLE empdep ADD maname VARCHAR(10) NOT NULL;
將字段名放在第一行:ALTER TABLE empdep MODIFY maname VARCHAR (10) FIRST;
alter table bingovalue1 modify rownumbers int(只寫(xiě)個(gè)類(lèi)型就可以) first;
將字段放在某一行:ALTER TABLE empdep MODIFY maname VARCHAR(10) AFTER depid;
刪除字段:alter table empdep drop maname;
刪除主鍵:alter table empdep drop primary key;
添加自增字段:alter table 表名 add 字段名 int primary key auto_increment;添加自增字段時(shí),這列數(shù)據(jù)需要時(shí)整數(shù)且為主鍵;
sql的數(shù)據(jù)查詢(xún)功能
select * from 表
where 對(duì)總表的原始數(shù)據(jù)加條件
group by
having 對(duì)分組后的數(shù)據(jù)進(jìn)行加條件
order by (desc降序的方式進(jìn)行排序)
select中的運(yùn)算符包含:算數(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、聚合函數(shù)
連接方式
方向性:left join;right join; inner join 可以確定主附表,
對(duì)應(yīng)關(guān)系:一對(duì)一,一對(duì)多,多對(duì)多 一對(duì)一的最不會(huì)出現(xiàn);
select * from A left join B on A.key=B.key; 如果兩個(gè)表中的字段相同時(shí),一定要注意在用的時(shí)候?qū)懮媳砻?#xff1b;
橫向合并:left join;right join; inner join
縱向合并:追加查詢(xún),下表分別表示當(dāng)主鍵相同時(shí)和主鍵不同的時(shí)候
聯(lián)合查詢(xún):union和union all的用法:union是合并后回去重,union all是合并后不會(huì)去重;
(select *from a) union (select from * b); (select *from a) union all (select from * b);
查詢(xún)操作符,邏輯運(yùn)算符
-- 用and操作符查詢(xún)s_id為101并且f_id為a1的水果記錄
select * from fruits
where s_id = '101' and f_id = 'a1';
-- 用or操作符查詢(xún)蘋(píng)果或者橙子的相關(guān)記錄
select * from fruits
where f_name = 'apple' or f_name = 'orange';
-- 用in操作符查詢(xún)蘋(píng)果和橙子的相關(guān)記錄
select * from fruits
where f_name in('apple','orange');
-- 用not in操作符查詢(xún)蘋(píng)果和橙子之外的水果的相關(guān)記錄
select * from fruits
where f_name not in('apple','orange');
-- 用between...and操作符查詢(xún)f_price在10元到20元之間的水果記錄
select * from fruits
where f_price between 10 and 20;
-- 用is null操作符查詢(xún)所有f_name為空的水果記錄
select * from fruits
where f_name is null;
like 操作符
-- 用like操作符查詢(xún)所有f_name由a開(kāi)始的水果記錄
select * from fruits
where f_name like 'a%';
select * from fruits
where f_name like "%a%";
-- 用like操作符查詢(xún)所有f_id由b開(kāi)始且字符長(zhǎng)度為兩位的水果記錄
select * from fruits
where f_id like 'b_';
distinct 操作符
-- 查詢(xún)fruits表中所有不重復(fù)的s_id
select distinct s_id from fruits;
子查詢(xún)
-- 用in操作符與子查詢(xún)語(yǔ)句來(lái)查詢(xún)所有f_id對(duì)應(yīng)的f_price在10元到20元之間的水果記錄
select * from fruits where f_id in
(select f_id from fruits where f_price between 10 and 20);
select f_id from fruits where f_price between 10 and 20;
-- 用any操作符與子查詢(xún)語(yǔ)句來(lái)查詢(xún)?nèi)我鈌_price大于20元的水果記錄
select * from fruits where f_price > any
(select f_price from fruits where f_price < 20);找最小的,并且只要大于這個(gè)值就可以
-- 用all操作符與子查詢(xún)語(yǔ)句來(lái)查詢(xún)所有f_price大于20元的水果記錄
select * from fruits where f_price > all
(select f_price from fruits where f_price < 20);找最大的,要找大于所有的值得值
-- 用exists操作符與子查詢(xún)語(yǔ)句來(lái)查詢(xún)是否存在f_price大于30元的水果記錄
select * from fruits where exists
(select * from fruits where f_price > 30);
as 重命名和limit限制查詢(xún)
-- 用as將fruits表名重命名為f后使用
select f.* from fruits as f;
-- 顯示f_price金額最大的前三名水果記錄
select * from fruits
order by f_price desc
limit 3;
常用函數(shù)
-- 使用abs函數(shù)求所有水果平均值與最大值差值的絕對(duì)值
select abs(avg(f_price)-max(f_price)) from fruits;
-- 使用length函數(shù)求每個(gè)f_name的名字與他們的字符長(zhǎng)度
select f_name,length(f_name) from fruits;
select f_name, length(f_name) from fruits group by f_name;
-- 使用now函數(shù)求當(dāng)前的日期和時(shí)間
select now();
GROUP_CONCAT,將分組后的所有值顯示出來(lái)
-- 使用group_concat函數(shù)查詢(xún)不同s_id下對(duì)應(yīng)的所有f_name信息
SELECT s_id, GROUP_CONCAT(f_name) FROM fruits
GROUP BY s_id;
update..set 更新和delete刪除
-- 使用concat函數(shù)在f_name字段值前添加'fruit_'信息
SET SQL_SAFE_UPDATES = 0;#1175錯(cuò)誤,意思是默認(rèn)是1,不能任意更新
update fruits set f_name = concat('fruit_',f_name);
select * from fruits;
-- 刪除f_id為'b5'的數(shù)據(jù)記錄
delete from fruits where f_id = 'b5';
select * from fruits;
案例分析中的筆記
set @allcount = (select count(*) from final);#用set函數(shù)創(chuàng)建新的變量
set @allsum = (select count(*)*5 from final);
select count(bingovalue)/@allcount as 中獎(jiǎng)張數(shù)占比,sum(bingovalue)/@allsum as 中獎(jiǎng)金額占比 from final
where bingovalue > 0;
總結(jié)
以上是生活随笔為你收集整理的mysql 修改自增字段起始值不生效_Mysql数据库基本介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微软 Win11 测试个性化新功能,让
- 下一篇: django不修改数据库创外键_Djan