MySql---数据库笔记(功能齐全)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                MySql---数据库笔记(功能齐全)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            ###數據庫
####數據庫簡介
- 通過IO流自己對數據進行操作需要寫
- 大量的代碼,而且不能保證程序的執行效率,IT行業中凡是很常用實現又很麻煩的業務,通常會有完整的解決方案,數據庫軟件就是對數據增刪改查的解決方案,程序員只需要學習如何使用數據庫軟件即可。
- 什么是DBMS: DataBase數據庫Management管理System系統(數據庫管理軟件),常見的DBMS: MySQL、Oracle、DB2、SQLserver等
####DBMS介紹:
1. MySQL: Oracle公司產品, 08年被SUN公司收購,09年Sun公司被Oracle收購,擔心MySQL被閉源,原MYSQL創始人們離開Oracle創建了MariaDB,市場占有率排名第一。
2. Oracle: Oracle公司產品,市場占有率排名第二,性能最高,價格最貴,老板拉力.艾莉森。
3. SQLServer: 微軟公司產品,市場占有率排名第三,主要應用在微軟的整套解決方案中整套解決方案: 開發語言+操作系統+web服務軟件+數據庫軟件
4. DB2: IBM公司產品,一般應用在IBM整套解決方案中
5. SQLite: 輕量級數據庫。安裝包只有幾十k,應用在移動設備和嵌入式設備中
- 開源和閉源區別:
1. 開源: 開放源代碼,免費,盈利方式:靠提供服務賺錢,有技術大牛無償維護升級。
2. 閉源:不公開源代碼,收費,盈利方式:靠賣產品和賣服務賺錢,有技術大牛攻擊,不過公司有錢可以養一幫人維護。
###SQL
- Structured Query Language:結構化 查詢 語言  ,用于程序員和數據庫之間的交流,學習數據庫主要學習的就是這門語言
####如何連接MySQL數據庫軟件
1. window:
2. linux:在空白區域右鍵-》終端-》mysql -uroot -p 回車-》輸入密碼(沒有密碼直接敲回車)敲回車
3. 退出指令: exit
####數據庫相關SQL
1. 查詢所有數據庫
- 格式:show databases;
2. 創建數據庫并指定字符集
- 格式: create database 數據庫名 character set utf8/gbk;create database db1 character set utf8;show databases;create database db2 character set gbk;
3. 查看數據庫詳情
- 格式: show create database 數據庫名;show create database db1;
4. 刪除數據庫 
- 格式: drop database 數據庫名;drop database db1;
5. 使用數據庫
- 格式: use 數據庫名;use db1;(前提db1已經存在)
- 練習:1. 分別創建mydb1和mydb2數據庫 第一個是gbk第二個是utf82. 創建完后查詢兩個是不是都存在3. 查詢兩個字符集是否正確4. 先使用mydb1再使用mydb25. 刪除兩個數據庫 ####表相關SQL
- 表相關的各種操作必須已經使用了數據庫 create database db1 character set utf8;use db1;
1. 創建表
- 格式: create table 表名(字段名 類型,字段名 類型);create table person(name varchar(10),age int);
- 練習: 創建學生表student 字段有: 學號id 姓名name 語文chinese 數學math 英語englishcreate table student(id int,name varchar(10),chinese int,math int,english int);
2. 查詢所有表
- 格式: show tables;	
3. 查看表詳情
- 格式: show create table 表名;show create table student;
4. 創建表指定字符集
- 格式: create table 表名(字段名 類型,字段名 類型) charset=utf8/gbk;create table t1(name varchar(10),age int)charset=gbk;show create table t1;
5. 查看表字段
- 格式: desc 表名;desc student;
6. 刪除表
- 格式: drop table 表名drop table t1;6.1 清空表truncate table db1.t_user
7. 添加表字段 
- 最后添加格式: alter table 表名 add 字段名 類型; alter table person add sal int;
- 最前面添加格式:alter table 表名 add 字段名 類型 first; alter table person add id int first;
- xxx的后面添加格式:alter table 表名 add 字段名 類型 after xxx; alter table person add gender varchar(10) after name;
8. 刪除表字段
- 格式: alter table 表名 drop 字段名;alter table person drop gender;
9. 修改表字段名和類型
- 格式: alter table 表名 change 原名 新名 新類型;alter table person change sal gender varchar(10);
####數據庫和表相關練習:
1. 創建數據庫mydb1 字符集為utf8   并使用該數據庫create database mydb1 character set utf8;use mydb1;
2. 在mydb1中創建員工表emp  字段有name   字符集為utf8create table emp (name varchar(10)) charset=utf8;
3. 添加表字段age在最后面alter table emp add age int;
4. 添加id字段在最前面alter table emp add id int first;
5. 添加sal字段在name的后面alter table emp add sal int after name;
6. 修改字段sal為salaryalter table emp change sal salary int;
7. 刪除age字段  alter table emp drop age;
8. 刪除emp表    drop table emp;
9. 刪除數據庫   drop database mydb1;
####數據相關SQL
create database newdb1 character set utf8;
use newdb1;
create table emp(id int,name varchar(10),age int);
1. 插入數據
- 全表插入格式: insert into 表名 values(值1,值2,值3);insert into emp values(1,'Tom',18);
- 指定字段格式:insert into 表名(字段名1,字段名2)values(值1,值2);insert into emp(name,age) values('Jerry',15);
- 批量插入數據格式:insert into emp values(4,'悟空',500),(5,'八戒',300),(6,'沙僧',200);insert into emp(name,age) values('劉備',25),('關羽',23),('張飛',18);
- 中文問題:insert into emp values(3,'劉德華',25);如果有同學執行以上SQL語句報錯的話執行以下SQL語句即可set names gbk;
2. 查詢數據
- 格式: select 字段信息 from 表名 where 條件;
- 舉例:1. 查詢所有的員工姓名   select name from emp;2. 查詢所有員工的所有信息  select * from emp;3. 查詢年齡小于100歲的員工姓名和年齡 select name,age from emp where age<100;4. 查詢悟空的信息select * from emp where name='悟空';
3. 修改數據
- 格式: update 表名 set 字段名=值,字段名=值 where 條件;
- 舉例:1. 修改悟空名字為孫悟空update emp set name='孫悟空' where name='悟空';2. 修改劉備年齡為50歲update emp set age=50 where name='劉備';3. 修改30歲以下的員工年齡為10歲update emp set age=10 where age<30;
4. 刪除數據
- 格式: delete from 表名 where 條件;
- 舉例:1. 刪除Tomdelete from emp where name='Tom';2. 刪除年齡10歲的員工delete from emp where age=10;3. 刪除所有數據delete from emp;
####練習:
1. 創建hero表 id  名字name  類型type  價格moneycreate table hero(id int,name varchar(10),type varchar(10),money int);
2. 保存以下數據insert into hero values(1, '諸葛亮', '法師', 18888),   (2, '周瑜', '法師', 13888),(3, '孫悟空', '打野', 18888),   (4, '小喬',  '法師', 13888),(5, '黃忠',   '射手', 8888),    (6, '劉備',  '戰士', 6888);
3. 修改所有18888為28888  update hero set money=28888 where money=18888;
4. 修改所有法師為戰士 update hero set type='戰士' where type='法師';
5. 刪除價格為6888的英雄 delete from hero where money=6888;
6. 修改小喬為豬八戒 update hero set name='豬八戒' where name='小喬';
7. 刪除價格低于15000的英雄 delete from hero where money<15000;
8. 添加性別gender字段在name的后面alter table hero add gender varchar(10) after name;
9. 修改所有英雄的性別為男 udpate hero set gender='男';
10. 刪除所有數據  delete from hero;
11. 刪除表  drop hero;####數據類型
1. 整數: int(m) 和 bigint(等效java中的long) ,m代表顯示長度 需要結合zerofill關鍵字使用create table t_int(id int,age int(10) zerofill);insert into t_int values(1,20);select * from t_int;
2. 浮點數: double(m,d)  m代表總長度 d代表小數長度  m=5 d=3  23.456,超高精度浮點數decimal(m,d) 只有涉及到超高精度運算時使用
3. 字符串: 
- char(m): 固定長度 m=5 "abc" 所占長度為5,執行效率略高 ,最大長度255
- varchar(m):可變長度m=5 "abc" 所占長度為3,節省空間,最大長度65535 超過255建議使用text
- text(m):可變長度  最大長度65535
4. 日期:
- date: 只能保存年月日
- time: 只能保存時分秒
- datetime:年月日時分秒  默認值null  最大值9999-12-31
- timestamp:時間戳   默認值當前系統時間 最大值2038年1月19號create table t_date(t1 date,t2 time,t3 datetime,t4 timestamp);insert into t_date values('2019-9-5',null,null,null);insert into t_date values(null,'17:37:28','2019-9-5 17:37:28',null);###課程回顧:
1. 數據庫相關SQL
- show databases;
- create database db1 character set utf8/gbk;
- show create database db1;
- drop database db1;
- use db1;
2. 表相關SQL
- create table t1(id int,name varchar(10)) charset=utf8/gbk;
- show tables;
- show create table t1;
- desc t1;
- drop table t1;
- alter table t1 add age int first/   after xxx;
- alter table t1 drop age;
- alter table t1 change 原名 新名 新類型;
3. 數據相關SQL
- insert into t1(字段名1,字段名2) values('值1','值2'),('值1','值2');
- select 字段信息 from t1 where 條件;
- update t1 set xxx=xxx where 條件;
- delete from t1 where 條件;
4. 數據類型
- 整數:  int和bigint  
- 浮點數: double(m,d) m總長度 d小數長度  超高精度decimal(m,d)
- 字符串: char 固定長度 最大255 varchar 可變長度最大65535 超高255建議使用text    text 可變長度最大65535
- 日期:  date  time  datetime 最大9999-12-31 默認null   timestamp最大2038-1-19  默認值當前系統時間html 
css 
JavaScript
jQuery
Bootstrap 
MySQL 
                        
                        
                        個人文件里有很多粉絲專享文件,教程和源碼
總結
以上是生活随笔為你收集整理的MySql---数据库笔记(功能齐全)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: springboot报错---No id
- 下一篇: springboot报错---@RunW
