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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库查询笔记_MySql数据库基础笔记(一)

發(fā)布時(shí)間:2025/3/12 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库查询笔记_MySql数据库基础笔记(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、表與庫的概念

數(shù)據(jù)庫管理數(shù)據(jù),它是以什么樣的形式組成的?

生活中的表---->表 table

多行多列,傳統(tǒng)的數(shù)據(jù)庫都是這樣的;聲明了表頭,一個(gè)表創(chuàng)建好了,剩下的就是往表中添加數(shù)據(jù)

多張表放在檔案中--->庫 database

學(xué)生信息表,成績表,記過表 -> 都是這個(gè)班級(jí)的信息,將這幾張表放在一個(gè)文件夾中 -> 這個(gè)文件夾,文檔就是 庫

mysql服務(wù)器可以幫我們管理多個(gè)庫

xampp\mysql\data

數(shù)據(jù)庫中的數(shù)據(jù)放在這個(gè)文件中, .MYD就是數(shù)據(jù)文件

檔案袋管理員---> 服務(wù)器 server

數(shù)據(jù)庫就是將我們的數(shù)據(jù)存儲(chǔ)成文件,分文別類的管理起來

查看庫 show databases;

選庫 use test;

查看庫下的表 show tables;

查表 select * from cat;

二、認(rèn)識(shí)SQL

sql語句大致可以分為三種:

DML is Data Manipulation Language statements. Some examples:數(shù)據(jù)操作語言,SQL 中處理數(shù)

據(jù)等操作統(tǒng)稱為數(shù)據(jù)操縱語言 增刪改查

對我們而言,DML是我們的重點(diǎn)

DDL is Data Definition Language statements. Some examples:數(shù)據(jù)定義語言,用于定義和管理

SQL 數(shù)據(jù)庫中的所有對象的語言 (建設(shè)者的角度,建表,建庫,建視圖 等等, 15%)

一般來說,一個(gè)數(shù)據(jù)庫在設(shè)計(jì)完畢之后很少會(huì)再改動(dòng)了

DCL is Data Control Language statements. Some examples:數(shù)據(jù)控制語言,用來授予或回收訪

問數(shù)據(jù)庫的某種特權(quán),并控制數(shù)據(jù)庫操縱事務(wù)發(fā)生的時(shí)間及效果,對數(shù)據(jù)庫實(shí)行監(jiān)視等

(管理員角度,DBA[數(shù)據(jù)庫管理員],5%)

這個(gè)用戶是否有權(quán)限建表,等

三、增刪改查操作

1. insert 操作

DML,增刪改查—>增

user表,uid name age 三列

(1).添加所有列 添加所有列

insert into user (uid,name,age) values (1,'lisi',23);

(2).一行中有多個(gè)列,我們可以插入全部列,也可以插入部分列

但是:列與值要嚴(yán)格對應(yīng)

insert into user (uid,name) values (1,'lucy');

(3).主鍵自增插入 主鍵自增插入 desc user;

insert into user (name) values ('yumi');

(4).插入所有列的簡寫 插入所有列的簡寫

insert into user values ('kimi',25); //報(bào)錯(cuò):列計(jì)數(shù)不匹配值計(jì)數(shù)insert into user values (3,'kimi',25);

數(shù)字可以加單引號(hào),它也會(huì)轉(zhuǎn)成int來理解

但是字符串必須加單引號(hào),不加會(huì)理解為一個(gè)列名或者變量,會(huì)報(bào)錯(cuò)

insert into user values ('4','zhangsan','25');insert into user values (5,zhangsan,25);

(5).一次添加多行數(shù)據(jù) 一次添加多行數(shù)據(jù)

insert into user values (5,'test1',44),(6,'test2',23),(7,'test3',18);

注意:

列與值, 嚴(yán)格對應(yīng) (id 自增列也必須對應(yīng))

數(shù)字和字符串的注意點(diǎn)

數(shù)字不必加單引號(hào),字符串必須加單引號(hào).

1 次添加多行數(shù)據(jù),用逗號(hào)隔開

2. update 操作

增刪改查 -> 改

改哪張表?

你需要改哪幾列的值?

分別改為什么值?

在哪些行生效?

(1).update 更改列

update user set age=99 where name='yumi';update 表名 set列1=新值1,

列2=新值2where expr

update user set age=23,name='nobody' where uid=2;

(2).update 所有行

注意,不加 where 帶來的后果

update user

setname='mingming',

age=55;

數(shù)據(jù)是很寶貴的

如果我們update不加where條件,后果是很可怕的

mysql可以設(shè)置新手模式,在新手模式下,刪除和更改不加where條件,它是拒絕執(zhí)行的.

3. delete 操作

增刪改查 -> 刪

可不可以刪除某一行中的某一列?delete...

其實(shí)這是個(gè)update操作

對于傳統(tǒng)型數(shù)據(jù)庫而言,一行就是它的原子型的單位

添加是一行,刪除也要是一行

你要?jiǎng)h除哪張表的數(shù)據(jù)?

你要?jiǎng)h掉哪些行?

delete from表名where expr

sql: *

delete from user where uid=7;

注意不加where條件

delete from user;

4. select 操作

增刪改查 -> 查

查哪張表的數(shù)據(jù)?

你要選擇哪些列來查詢?

要選擇哪些行?

select 列1,列2,...列n

from 表名

where expr

(1).查詢表的所有行所有列

select * from user;

開發(fā)中很少這樣寫,因?yàn)楸碇袝?huì)有成千上萬的數(shù)據(jù),這樣查詢會(huì)增加數(shù)據(jù)庫負(fù)擔(dān);

我們需要哪幾條數(shù)據(jù),就查詢哪幾條數(shù)據(jù)即可

(2).查詢一行

select * from user where uid=2;

(3).查詢多行

select * from user where uid>=2;

(4).查詢某幾行的某幾列,* 代表所有列

select uid,name from user where uid>=2;select name from user where uid=2;

dml占sql的80%,查占dml的80%;

我們所學(xué)的是最最基礎(chǔ)的查詢語句;

想要寫出高難度的復(fù)雜的查詢,我們還需專門討論查詢的模型的問題;

看我們是否能正真理解select,寫出強(qiáng)大的查詢語句,

要靠select的查詢模型,非常之重要

(5).goods表,查詢本店的商品比市場價(jià)便宜多少

select goods_id,goods_name,shop_price,market_price,market_price-shop_price from goods;

(6).投影的概念

select name,age from user;

user表有三列,我們只取出2列(部分列),叫做投影運(yùn)算

就像手電筒,只照到兩列,投出影子顯示出來

goods表查詢出來 market_price-shop_price

兩個(gè)列做運(yùn)算,叫做廣義投影

四、練習(xí)

1.取整

select num/10 from mian;

2.mysql 手冊函數(shù)

floor 向下取整

select floor(num/10)*10 from mian;

3.更改mian表

update mian set num=floor(num/10)*10 where num between 20 and 39;select * from mian;

提示:大膽的把列看成變量,參與運(yùn)算,甚至調(diào)用函數(shù)來處理 .

substring(),concat()

4.substring 截取字符串

select goods_id,substring(goods_name,4) from goods where goods_name like '諾基亞%';

5.concat 拼接字符串

select goods_id,concat('HTC',substring(goods_name,4)) from goods where goods_name like '諾基亞%';

6.更改表

為了不破壞表的數(shù)據(jù),此處不予修改

update goods set goods_name=concat('HTC',substring(goods_name,4)) where goods_name like '諾基亞%';

大膽的把列看成變量,參與運(yùn)算

注明:該筆記是學(xué)習(xí)“MySQL加強(qiáng)_布爾教育”時(shí)所記錄的

總結(jié)

以上是生活随笔為你收集整理的mysql数据库查询笔记_MySql数据库基础笔记(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。