mysql ddl dql_MySQL的DDL和DML及其DQL數據庫操作

數據庫的基本概念

1. 數據庫的英文單詞: DataBase 簡稱 : DB

2. 什么數據庫?

* 用于存儲和管理數據的倉庫。

3. 數據庫的特點:

1. 持久化存儲數據的。其實數據庫就是一個文件系統

2. 方便存儲和管理數據

3. 使用了統一的方式操作數據庫 -- SQL

4. 常見的數據庫軟件

# MySQL數據庫軟件

1. 安裝

2. 卸載

1. 去mysql的安裝目錄找到my.ini文件

* 復制 datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

2. 卸載MySQL

3. 刪除C:/ProgramData目錄下的MySQL文件夾。

3. 配置

* MySQL服務啟動

1. 手動。

2. cmd--> services.msc 打開服務的窗口

3. 使用管理員打開cmd

* net start mysql : 啟動mysql的服務

* net stop mysql:關閉mysql服務

* MySQL登錄

1. mysql -uroot -p密碼

2. mysql -hip -uroot -p連接目標的密碼

3. mysql --host=ip --user=root --password=連接目標的密碼

* MySQL退出

1. exit

2. quit

* MySQL目錄結構

1. MySQL安裝目錄:basedir="D:/develop/MySQL/"

* 配置文件 my.ini

2. MySQL數據目錄:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

* 幾個概念

* 數據庫:文件夾

* 表:文件

* 數據:數據

SQL

1.什么是SQL?

Structured Query Language:結構化查詢語言

其實就是定義了操作所有關系型數據庫的規則。每一種數據庫操作的方式存在不一樣的地方,稱為“方言”。

2.SQL通用語法

1. SQL 語句可以單行或多行書寫,以分號結尾。

2. 可使用空格和縮進來增強語句的可讀性。

3. MySQL 數據庫的 SQL 語句不區分大小寫,關鍵字建議使用大寫。

4. 3 種注釋

* 單行注釋: -- 注釋內容 或 # 注釋內容(mysql 特有)

* 多行注釋: /* 注釋 */

3. SQL分類

1) DDL(Data Definition Language)數據定義語言

用來定義數據庫對象:數據庫,表,列等。關鍵字:create, drop,alter 等

2) DML(Data Manipulation Language)數據操作語言

用來對數據庫中表的數據進行增刪改。關鍵字:insert, delete, update 等

3) DQL(Data Query Language)數據查詢語言

用來查詢數據庫中表的記錄(數據)。關鍵字:select, where 等

4) DCL(Data Control Language)數據控制語言(了解)

用來定義數據庫的訪問權限和安全級別,及創建用戶。關鍵字:GRANT, REVOKE 等

DDL:操作數據庫、表

1. C(Create):創建

* 創建數據庫:

* create database 數據庫名稱;

* 創建數據庫,判斷不存在,再創建:

* create database if not exists 數據庫名稱;

* 創建數據庫,并指定字符集

* create database 數據庫名稱 character set 字符集名;

* 練習: 創建db4數據庫,判斷是否存在,并制定字符集為gbk

* create database if not exists db4 character set gbk;

2. R(Retrieve):查詢

* 查詢所有數據庫的名稱:

* show databases;

* 查詢某個數據庫的字符集:查詢某個數據庫的創建語句

* show create database 數據庫名稱;

3. U(Update):修改

* 修改數據庫的字符集

* alter database 數據庫名稱 character set 字符集名稱;

4. D(Delete):刪除

* 刪除數據庫

* drop database 數據庫名稱;

* 判斷數據庫存在,存在再刪除

* drop database if exists 數據庫名稱;

5. 使用數據庫

* 查詢當前正在使用的數據庫名稱

* select database();

* 使用數據庫

* use 數據庫名稱;

操作表

1. C(Create):創建

1. 語法:

create table 表名(

列名1 數據類型1,

列名2 數據類型2,

....

列名n 數據類型n

);

* 注意:最后一列,不需要加逗號(,)

* 數據庫類型:

1. int:整數類型

* age int,

2. double:小數類型

* score double(5,2)

3. date:日期,只包含年月日,yyyy-MM-dd

4. datetime:日期,包含年月日時分秒 yyyy-MM-dd HH:mm:ss

5. timestamp:時間錯類型 包含年月日時分秒 yyyy-MM-dd HH:mm:ss

* 如果將來不給這個字段賦值,或賦值為null,則默認使用當前的系統時間,來自動賦值

6. varchar:字符串

* name varchar(20):姓名最大20個字符

* zhangsan 8個字符 張三 2個字符

一個練習:

create table student(

id int,

name varchar(32),

age int ,

score double(4,1),

birthday date,

insert_time timestamp

);

復制表:

* create table 表名 like 被復制的表名;

2. R(Retrieve):查詢

* 查詢某個數據庫中所有的表名稱

* show tables;

* 查詢表結構

* desc 表名;

U(Update):修改

1. 修改表名

alter table 表名 rename to 新的表名;

2. 修改表的字符集

alter table 表名 character set 字符集名稱;

3. 添加一列

alter table 表名 add 列名 數據類型;

4. 修改列名稱 類型

alter table 表名 change 列名 新列別 新數據類型;

alter table 表名 modify 列名 新數據類型;

5. 刪除列

alter table 表名 drop 列名;

4. D(Delete):刪除

* drop table 表名;

* drop table if exists 表名 ;

* 客戶端圖形化工具:SQLYog

DML:增刪改表中數據

1. 添加數據:

* 語法:

* insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);

* 注意:

1. 列名和值要一一對應。

2. 如果表名后,不定義列名,則默認給所有列添加值

insert into 表名 values(值1,值2,...值n);

3. 除了數字類型,其他類型需要使用引號(單雙都可以)引起來

2. 刪除數據:

* 語法:

* delete from 表名 [where 條件]

* 注意:

1. 如果不加條件,則刪除表中所有記錄。

2. 如果要刪除所有記錄

1. delete from 表名; -- 不推薦使用。有多少條記錄就會執行多少次刪除操作

2. TRUNCATE TABLE 表名; -- 推薦使用,效率更高 先刪除表,然后再創建一張一樣的表。

3. 修改數據:

* 語法:

* update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 條件];

* 注意:

1. 如果不加任何條件,則會將表中所有記錄全部修改。

DQL:查詢表中的記錄

* select * from 表名;

1. 語法:

select

字段列表

from

表名列表

where

條件列表

group by

分組字段

having

分組之后的條件

order by

排序

limit

分頁限定

2. 基礎查詢

1. 多個字段的查詢

select 字段名1,字段名2... from 表名;

* 注意:

* 如果查詢所有字段,則可以使用*來替代字段列表。

2. 去除重復:

* distinct

3. 計算列

* 一般可以使用四則運算計算一些列的值。(一般只會進行數值型的計算)

* ifnull(表達式1,表達式2):null參與的運算,計算結果都為null

* 表達式1:哪個字段需要判斷是否為null

* 如果該字段為null后的替換值。

4. 起別名:

* as:as也可以省略

3. 條件查詢

1. where子句后跟條件

2. 運算符

* > 、< 、<= 、>= 、= 、<>

* BETWEEN...AND

* IN( 集合)

* LIKE:模糊查詢

* 占位符:

* _:單個任意字符

* %:多個任意字符

* IS NULL

* and 或 &&

* or 或 ||

* not 或 !

練習如下

-- 查詢年齡大于20歲

SELECT * FROM student WHERE age > 20;

SELECT * FROM student WHERE age >= 20;

-- 查詢年齡等于20歲

SELECT * FROM student WHERE age = 20;

-- 查詢年齡不等于20歲

SELECT * FROM student WHERE age != 20;

SELECT * FROM student WHERE age <> 20;

-- 查詢年齡大于等于20 小于等于30

SELECT * FROM student WHERE age >= 20 && age <=30;

SELECT * FROM student WHERE age >= 20 AND age <=30;

SELECT * FROM student WHERE age BETWEEN 20 AND 30;

-- 查詢年齡22歲,18歲,25歲的信息

SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25

SELECT * FROM student WHERE age IN (22,18,25);

-- 查詢英語成績為null

SELECT * FROM student WHERE english = NULL; -- 不對的。null值不能使用 = (!=) 判斷

SELECT * FROM student WHERE english IS NULL;

-- 查詢英語成績不為null

SELECT * FROM student WHERE english IS NOT NULL;

-- 查詢姓馬的有哪些? like

SELECT * FROM student WHERE NAME LIKE '馬%';

-- 查詢姓名第二個字是化的人

SELECT * FROM student WHERE NAME LIKE "_化%";

-- 查詢姓名是3個字的人

SELECT * FROM student WHERE NAME LIKE '___';

-- 查詢姓名中包含德的人

SELECT * FROM student WHERE NAME LIKE '%德%';

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533243.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533243.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533243.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python模糊圖像清晰化_視頻模糊圖像處理

隨著科學技術的不斷發展和進步以及人們的安防意識不斷加強&#xff0c;人們對于安防技術的要求越來越高。電子監控在許多領域中都得到了廣泛的應用&#xff0c;如交通監控、軍事偵查、公共場所安全防范等。清晰的圖像能夠準確地鎖定犯罪證據和犯罪嫌疑人&#xff0c;能夠清晰地…

mysql分頁 disti_MySql查詢性能優化

慢查詢判定1.開啟慢查詢日志記錄執行時間超過long_query_time 秒的sql語句2.通過show processlist命令查看線程執行狀態3.通過explain解析sql了解執行狀態慢查詢優化是否向服務器請求列不必要的數據查詢不需要的記錄(limit)&#xff0c;多表關聯返回全部列&#xff0c;總是取出…

java atlas mysql_使用Atlas實現MySQL讀寫分離+MySQL-(Master-Slave)配置

參考博文&#xff1a;MySQL-(Master-Slave)配置 本人按照博友北在北方的配置已成功 我使用的是 mysql5.6.27版本。配置中 又進一步對mysql5.6的日志進行了了解 &#xff1a;mysql日志詳細解析1.安裝注意&#xff1a;只能安裝在64位的Linux操作系統上&#xff0c;CentOS官方建…

mysql dts_云樹·DTS - 產品系列 - 分布式數據庫系統_MySQL數據庫性能優化-愛可生...

災備復制實現本地數據中心MySQL數據庫高效復制及異地數據中心MySQL數據庫容災轉移&#xff0c;從而確保在主數據中心故障或災難時&#xff0c;備用數據中心數據的最大完整性。該服務通過對MySQL二進制日志進行解析、過濾、合并、壓縮、并行回放等技術&#xff0c;準實時的在主備…

python利用matplotlib做餅圖_python利用matplotlib庫繪制餅圖的方法示例

介紹matplotlib 是python最著名的繪圖庫&#xff0c;它提供了一整套和matlab相似的命令API&#xff0c;十分適合交互式地進行制圖。而且也可以方便地將它作為繪圖控件&#xff0c;嵌入GUI應用程序中。它的文檔相當完備&#xff0c;并且 Gallery頁面 中有上百幅縮略圖&#xff0…

react同步請求_React中setState同步更新策略

setState 同步更新我們在上文中提及&#xff0c;為了提高性能React將setState設置為批次更新&#xff0c;即是異步操作函數&#xff0c;并不能以順序控制流的方式設置某些事件&#xff0c;我們也不能依賴于this.state來計算未來狀態。典型的譬如我們希望在從服務端抓取數據并且…

DVWA設置mysql_dvwa安裝、配置、使用教程(Linux)

一、搭建LAMP環境二、安裝DVWA2.1 下載dvwa2.2 解壓安裝將下載的應用解壓到apache默認的主目錄/var/www/html&#xff1a;unzip DVWA-master.zip -d /usr/www/html2.3 啟用功能dvwa上的漏洞&#xff0c;需要些刻意的配置才能被利用。訪問&#xff1a;http://172.0.0.1/dvwa如下…

eclipse mysql jndi_Java開發網 - tomcat5配置jndi的問題 (jdbc:comp is not bound in this Context)...

Posted by:returnerPosted on:2004-11-09 22:42tomcat5配置jndi的問題;斑竹高手們來看看啊&#xff0c;情況緊急&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;10萬分感謝這個問題我是搜索出來的&#xff0c;我也遇到了同…

java正則效率_善用Pattern提高你的應用處理正則表達式的效率(Java)

舉個簡單了例子&#xff0c;在一個需要用于注冊登錄的b/s模式的應用中&#xff0c;在瀏覽器驗證用戶注冊表單的合法性是必須的&#xff0c;但你為了防止hacker&#xff0c;在服務器再驗證一次肯定也是必須的。題目&#xff1a;在服務器端驗證郵箱是否合法&#xff1a;通常你可能…

java jwindow 鍵盤_各位老哥求救,JWINDOW無法接收到鍵盤監聽

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓下面po代碼啊。這是我的類。class DragWindow extends JWindow{int positionX;int positionY;public DragWindow() {try {jbInit();}catch(Exception e) {e.printStackTrace();}}private void jbInit() throws Exception {this.add…

java jdbc rowset_JAVA基礎知識之JDBC——RowSet

RowSet概念在C#中&#xff0c;提供了一個DataSet&#xff0c;可以把數據庫的數據放在內存中進行離線操作(讀寫)&#xff0c;操作完成之后再同步到數據庫中去&#xff0c;Java中則提供了類似的功能RowSet.RowSet接口繼承自ResultSet接口。與ResultSet相比&#xff0c;RowSet默認…

java廚房_JAVA環境搭建,廚房安裝圖文教程!

在“系統變量”欄下執行三項操作&#xff1a;①新建“Java_Home”&#xff0c;設置其值為 JDK所在的絕對路徑&#xff0c;如果你的事剛才的默認路徑&#xff0c;那值為&#xff1a;C:Program FilesJavajdk1.7.0_02②新建“Classpath”(如果已有&#xff0c;則直接編輯)&#xf…

java post get 請求_java get post 請求

packagewzh.Http;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.URL;importjava.net.URLConnection;importjava.util.List;importjava.util.Map;public classHttpRequest {/*** 向指定UR…

用java做日記本系統_jsp+servlet開發java web個人日記本系統

項目描述Jsp_Servlet技術使用個人日記本系統&#xff0c;主要有日記分類&#xff0c;添加日記&#xff0c;刪除日記和一些個人資料的修改。運行環境jdk8tomcat7mysql5.6IntelliJ IDEA(eclipse)項目技術(必填)Jsp Servletbootstrapjqueryckeditor數據庫文件(可選)鏈接&#xff1…

java類加載過程_java類的加載過程

在這本書里面&#xff0c;在講到類初始化的五種情況時&#xff0c;提及了一個比較有趣的事情。先來看看下面的代碼public class SubClass {static{System.err.println("I m your son");}public static final int name 111;}這個時候如果調用SubClass.name&#xff0…

java mvc 導出excel_Java springMVC POI 導出 EXCEL

思路 &#xff1a;將需要導出的數據存放在一個List中創建一個EXCEL表 注意 XSSFWorkbook 只能操作2007以上的版本&#xff0c;XSSFWorkbook 只能操作2003一下的版本&#xff0c;所以需要的時候可以使用 Workbook創建對象處理兼容性遍歷List 并將每條數據 寫入 EXCEL表中具體代碼…

java 排序原理_簡單選擇排序算法原理及java實現(超詳細)

簡單選擇排序的原理簡單選擇排序的原理非常簡單&#xff0c;即在待排序的數列中尋找最大(或者最小)的一個數&#xff0c;與第 1 個元素進行交換&#xff0c;接著在剩余的待排序的數列中繼續找最大(最小)的一個數&#xff0c;與第 2 個元素交換。以此類推&#xff0c;一直到待排…

python對象點方法_python面向對象知識點疏理

面向對象技術簡介類:用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。class類變量&#xff1a;類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。數據成員&#…

ckeditor java 上傳_CKEditor粘貼圖片自動上傳到服務器(Java版)

環境&#xff1a;java,springmvc,ckeditor,tomcat,maven情況&#xff1a;在做項目的時候發現本地圖片粘貼到ckeditor中&#xff0c;img標簽的src中的值是“data:image/png;base64,”開頭的&#xff0c;后面會跟一串字符串&#xff0c;圖片越大字符串越長&#xff0c;這樣的圖片…

java 序列化聲明_顯式聲明默認Java類序列化方法的原因是什么?

我定期看到具有以下結構的Java類&#xff1a;class MyClass implements Serializable {private static final long serialVersionUID 1L;// ...private void writeObject(final java.io.ObjectOutputStream s) throws IOException {s.defaultWriteObject();}private void read…