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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql-sql语句

發布時間:2024/4/13 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql-sql语句 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[root@localhost bin]# ./mysqld_safe –user=mysql &
[root@localhost bin]# nmap localhost
[root@localhost bin]# mysql -u root -p
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| discuz |
| mysql |
| phpbb |
| test |
+——————–+
5 rows in set (0.04 sec)

mysql> create database db2;
Query OK, 1 row affected (0.00 sec)

mysql> use db2;
Database changed

mysql> select database(); ---查看現在使用的是哪個數據庫。
+————+
| database() |
+————+
| db2 |
+————+
1 row in set (0.00 sec)

mysql> create table members (id int not null auto_increment primary key,name char(10) not null,tel char(15),qq int);
Query OK, 0 rows affected (0.01 sec)

mysql> desc members; ---查看表
+——-+———-+——+—–+———+—————-+
| Field | Type | Null | Key | Default| Extra |
+——-+———-+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL |auto_increment|
| name |char(10)| NO | | NULL | |
| tel | char(15) | YES | | NULL | |
| qq | int(11) | YES | | NULL | |
+——-+———-+——+—–+———+—————-+
4 rows in set (0.00 sec)

mysql> alter table members add addr char(20); ---添加一個字段addr
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table members drop qq; ---刪除一個字段qq
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table members modify addr char(30); ---修改數據類型或修飾符
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table members change addr address char(30); 修改字段的名字
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc members;
+———+———-+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+———+———-+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | char(10) | NO | | NULL | |
| tel | char(15) | YES | | NULL | |
| address | char(30) | YES | | NULL | |
+———+———-+——+—–+———+—————-+
4 rows in set (0.00 sec)

mysql> alter table members add qq int after name; ---在name后面+一個qq字段
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> insert into members (id ,name,qq,tel,address) values (1,’mike’,12345,876543,’beijing’); ---添加表內容
Query OK, 1 row affected (0.00 sec)

mysql> select * from members; ---查看表里所有內容
+—-+——+——-+——–+———+
| id | name | qq | tel | address |
+—-+——+——-+——–+———+
| 1 | mike | 12345 | 876543 | beijing |
+—-+——+——-+——–+———+
1 row in set (0.00 sec)
mysql> select name,address from members;
+——+———+
| name | address |
+——+———+
| mike | beijing |
+——+———+
1 row in set (0.00 sec)

mysql> insert into members (address,tel,qq,name) values(‘shanghai’,654654,654321,’colin’);
Query OK, 1 row affected (0.00 sec)

mysql> select * from members;
+—-+——-+——–+——–+———-+
| id | name | qq | tel | address |
+—-+——-+——–+——–+———-+
| 1 | mike | 12345 | 876543 | beijing |
| 2 | colin | 654321 | 654654 | shanghai |
+—-+——-+——–+——–+———-+
2 rows in set (0.00 sec)

mysql> insert into members set name=’zhang’,qq=98765432,tel=’010-12345′,address=’shenyang’; ---另一種添加記錄
Query OK, 1 row affected (0.00 sec)

mysql> insert into members set name=’zhang’,qq=98765432,tel=’010-12345′,address=’shenyang’;
Query OK, 1 row affected (0.00 sec)

mysql> select * from members;
+—-+——-+———-+———–+———-+
| id | name | qq | tel | address |
+—-+——-+———-+———–+———-+
| 1 | mike | 12345 | 876543 | beijing |
| 2 | colin | 654321 | 654654 | shanghai |
| 3 | zhang | 98765432 | 010-12345 | shenyang |
+—-+——-+———-+———–+———-+
3 rows in set (0.00 sec)

mysql> insert into members values (4,’divel’,253210,88585888,’shenzhen’); ---不指定字段.但數據要和名字一一對應
Query OK, 1 row affected (0.00 sec)

mysql> select * from members;
+—-+——-+———-+———–+———-+
| id | name | qq | tel | address |
+—-+——-+———-+———–+———-+
| 1 | mike | 12345 | 876543 | beijing |
| 2 | colin | 654321 | 654654 | shanghai |
| 3 | zhang | 98765432 | 010-12345 | shenyang |
| 4 | divel | 253210 | 88585888 | shenzhen |
+—-+——-+———-+———–+———-+
4 rows in set (0.00 sec)

mysql> delete from members where id=4; —刪除記錄
Query OK, 1 row affected (0.02 sec)

mysql> select * from members;
+—-+——-+———-+———–+———-+
| id | name | qq | tel | address |
+—-+——-+———-+———–+———-+
| 1 | mike | 12345 | 876543 | beijing |
| 2 | colin | 654321 | 654654 | shanghai |
| 3 | zhang | 98765432 | 010-12345 | shenyang |
+—-+——-+———-+———–+———-+
3 rows in set (0.00 sec)

mysql> drop table members; ---刪除表
Query OK, 0 rows affected (0.00 sec)

mysql> show tables; ---查看表
Empty set (0.00 sec)

===================================================
簡單的算術運算:
mysql> select 8+5;
+—–+
| 8+5 |
+—–+
| 13 |
+—–+
1 row in set (0.02 sec)

mysql> select 2+5,4-7,4*2,5/3;
+—–+—–+—–+——–+
| 2+5 | 4-7 | 4*2 | 5/3 |
+—–+—–+—–+——–+
| 7 | -3 | 8 | 1.6667 |
+—–+—–+—–+——–+
1 row in set (0.00 sec)
mysql> select 2+’a2′;
+——–+
| 2+’a2′ |
+——–+
| 2 |
+——–+
1 row in set, 1 warning (0.00 sec)
.
比較運算 > = >= < <= <> (與shell相反,如果正確返回1,錯誤返回0)
mysql> select 5 > 3; 返回1,正確
mysql> select 5 > 3,4 =’4a’; 返回1
mysql> select ’4′=’4a’; 返回0
mysql> select ‘a’='A’; 返回1,正確,默認是不區分大小寫的
mysql> select binary ‘a’='A’; 返回0,不正確,想區分大小寫,可以加上binary,這樣就區分大小寫
------------------------------------------------------------------
創建一個表
mysql> create table grade(id int not null auto_increment primary key,name char(10) not null,math int,physics int,computer int);
mysql> insert into grade values(1,’mike’,98,87,70),(2,’john’,70,67,50),(5,’tom’,67,57,80);添加3條記錄
mysql> desc grade;
mysql> select * from grade; 查看添加的記錄(表的內容)
mysql> select * from grade where name=’mike’; 查詢名字為mike的記錄,默認不區分大小寫
mysql> select * from grade where binary name=’MIKE’; 嚴格查詢大寫MIKE的記錄
Empty set (0.00 sec) 搜索不到,空的
mysql> select * from grade where math > 80; 查詢數學成績大于80的記錄
mysql> select name,math+physics+computer from grade;只列出人名和總成績
mysql> select name,(math+physics+computer)/3 from grade; 查詢平均成績
mysql> select name,(math+physics+computer)/3 from grade where (math+physics+computer)/3>80;查詢平均成績大于80的成績
邏輯 and 兩邊條件都滿足才成立 or 只有一個條件滿足就成立
mysql> select * from grade where math>=60 and physics>=60 and computer >=60; 邏輯與,所有大于60分的成績
mysql> select * from grade where math<60 or physics <60 or computer<60; 邏輯或 有一課小于60分的成績
函數 函數只能放在select的后面
mysql> select count(*) from grade;
mysql> select avg(math) from grade; 查看數學成績的平均成績
mysql> select avg(math),avg(computer),avg(physics)from grade; 查看數學,計算機,物理的平均成績
mysql> select sum(math) from grade; 查看數學成績的總成績
mysql> select max(computer) from grade; 求計算機科目中最大值
mysql> select min(computer) from grade; 求計算機科目中最小值
------------------------
mysql> select * from grade order by math; 排序(order by)根據math排序,默認是升序排序
mysql> select * from grade order by math desc; (desc 表示倒敘排序)
mysql> select * from grade order by name; name字段也可以排序,根據第一個字母
mysql> select * from grade order by math desc limit 2; 按數學成績倒敘排序,選擇前兩名
mysql> select * from grade order by math desc limit 2,2; 第一個2表示從第3條記錄開始顯示,0表示第一條,第二個2表示顯示幾條記錄
mysql> select name,math+physics+computer from grade order by math+physics+computer desc limit 1;查看總成績最高的一條記錄
----------
修改記錄 update(更新)
mysql> update grade set math=88 where id=1; 更新grade表的math=88,當id=1的時候
mysql> update grade set math=88 where name=’john’ and id=2; 可以用and加入邏輯與添加多個條件
-----
mysql> select now(); 顯示當前的時間
mysql> select user(); 顯示當前由那個用戶登錄的 此時root是數據庫的管理員,不是系統的管理員
[root@ppwn ~]# mysql -u root -h localhost -p -h后面可以跟一個ip,默認情況下只能登錄本機,如果遠程必須要指定一下
mysql> select * from zb.grade; 查看表必須要指定哪個數據庫,可以用.這種方式

=====================================================================

數值型:
整數: 類型 大小 范圍(有符號) 范圍(無符號) 用途
tinyint 1字節 -128~127 0~255 小整數值
smallint 2字節 -32768~32767

如:
mysql> create table data (fti tinyint,fsi smallint,fmi mediumint,fi int,fbi bigint);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into data values(12345678,12345678,123456789,123456789,12345678987654321);
Query OK, 1 row affected, 3 warnings (0.00 sec)

mysql> select * from data;
+——+——-+———+———–+——————-+
| fti | fsi | fmi | fi | fbi |
+——+——-+———+———–+——————-+
| 127 | 32767 | 8388607 | 123456789 | 12345678987654321 |
+——+——-+———+———–+——————-+
1 row in set (0.00 sec)

INT類型:
UNSIGNED修飾符規定字段只保存正的值,它可以增大這個字段支持的值的范圍。
ZEROFILL修飾符規定0(不是空格)可以用于填補輸出值。
---------------------------------------------
小數:FLOAT,DOUBLE,DECIMAL
mysql> create table data2 (test float(5,2));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into data2 values(123456.456);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from data2;
+——–+
| test |
+——–+
| 999.99 |
+——–+
1 row in set (0.00 sec)
mysql> insert into data2 values(456.456);
Query OK, 1 row affected (0.00 sec)

mysql> select * from data2;
+——–+
| test |
+——–+
| 999.99 |
| 456.46 |
+——–+
2 rows in set (0.00 sec)
mysql> insert into data2 values(‘make’);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from data2;
+——–+
| test |
+——–+
| 999.99 |
| 456.46 |
| 0.00 |
+——–+
3 rows in set (0.00 sec)
------------------------------------------
字符串類型:
CHAR和VARCHAR類型
CHAR定長
VARCHAR可變的-根據實際長度來分配內存

mysql> create table data3 (id int,name char(7));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into data3 values(1,’abcd’),(2,’abcdefghijklmn’);
Query OK, 2 rows affected, 1 warning (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 1

mysql> select * from data3;
+——+———+
| id | name |
+——+———+
| 1 | abcd |
| 2 | abcdefg |
+——+———+
2 rows in set (0.00 sec)

CHAR類型認可一個可選擇的BUNARY修飾符,BUNARY區分大小寫。

mysql> create table data4 (name varchar(10) binary);
Query OK, 0 rows affected (0.00 sec)

mysql> insert into data4 values(‘mike’),(‘Tom’);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from data4 where name=’tom’;
Empty set (0.00 sec)

mysql> select * from data4 where name=’Tom’;
+——+
| name |
+——+
| Tom |
+——+
1 row in set (0.00 sec)
--------------------------------------------
日期和時間類型:

date類型:
mysql> create table data5 (birthday date);
Query OK, 0 rows affected (0.00 sec)

mysql> desc data5;
+———-+——+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+———-+——+——+—–+———+——-+
| birthday | date | YES | | NULL | |
+———-+——+——+—–+———+——-+
1 row in set (0.00 sec)

mysql> insert into data5 values(’2009-09-02′);
Query OK, 1 row affected (0.00 sec)

mysql> select * from data5;
+————+
| birthday |
+————+
| 2009-09-02 |
+————+
1 row in set (0.00 sec)

mysql> insert into data5 values(20080909);
Query OK, 1 row affected (0.00 sec)

mysql> select * from data5;
+————+
| birthday |
+————+
| 2009-09-02 |
| 2008-09-09 |
+————+
2 rows in set (0.00 sec)

mysql> insert into data5 values(’96-08-08′); ---年用2位數來表示 0~69表示2000~2069 70~99表示1970~1999
Query OK, 1 row affected (0.00 sec)

mysql> select * from data5;
+————+
| birthday |
+————+
| 2009-09-02 |
| 2008-09-09 |
| 0000-00-00 |
| 1996-08-08 |
+————+
4 rows in set (0.00 sec)

time類型:
mysql> create table data6 (showtime time);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into data6 values(’14:27:01′);
Query OK, 1 row affected (0.00 sec)

mysql> insert into data6 values(201010);
Query OK, 1 row affected (0.00 sec)

mysql> select * from data6;
+———-+
| showtime |
+———-+
| 14:27:01 |
| 20:10:10 |
+———-+
2 rows in set (0.00 sec)

year類型:

mysql> create table data7(Y year);
Query OK, 0 rows affected (0.00 sec)

mysql> insert into data7 values(2009),(85),(3);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from data7;
+——+
| Y |
+——+
| 2009 |
| 1985 |
| 2003 |
+——+
3 rows in set (0.00 sec)

year() 函數
mysql> select * from data5;
+————+
| birthday |
+————+
| 2009-09-02 |
| 2008-09-09 |
| 0000-00-00 |
| 1996-08-08 |
| 2000-03-12 |
| 2000-11-12 |
+————+
6 rows in set (0.00 sec)

mysql> select year(birthday) from data5;
+—————-+
| year(birthday) |
+—————-+
| 2009 |
| 2008 |
| 0 |
| 1996 |
| 2000 |
| 2000 |
+—————-+
6 rows in set (0.00 sec)

mysql> select * from data5 where year(birthday) > 2000; ---與where結合
+————+
| birthday |
+————+
| 2009-09-02 |
| 2008-09-09 |
+————+
2 rows in set (0.00 sec)

datetime類型

mysql> create table data8 (dt datetime);
Query OK, 0 rows affected (0.00 sec)

mysql> insert into data8 values(’2008-01-01 12:12:09′),(20090110121010);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from data8;
+———————+
| dt |
+———————+
| 2008-01-01 12:12:09 |
| 2009-01-10 12:10:10 |
+———————+
2 rows in set (0.00 sec)

mysql> insert into data8 values(now()); ---插入當前日期和時間
Query OK, 1 row affected (0.00 sec)

mysql> select * from data8;
+———————+
| dt |
+———————+
| 2008-01-01 12:12:09 |
| 2009-01-10 12:10:10 |
| 2009-09-02 14:36:19 |
+———————+
3 rows in set (0.00 sec)

timestamp類型: 時間綽
mysql> create table data9 (ts timestamp);
Query OK, 0 rows affected (0.00 sec)

mysql> insert into data9 values();
Query OK, 1 row affected (0.00 sec)

mysql> select * from data9;
+———————+
| ts |
+———————+
| 2009-09-02 14:39:51 |
+———————+
1 row in set (0.00 sec)

mysql> insert into data9 values(null);
Query OK, 1 row affected (0.00 sec)

mysql> select * from data9;
+———————+
| ts |
+———————+
| 2009-09-02 14:39:51 |
| 2009-09-02 14:40:07 |
+———————+
2 rows in set (0.00 sec)

-----------------------------------------------------
復合類型:
MYSQL有2個復合類型:ENUM(枚舉)類型和SET類型。
他們的值必須從一個預先定義好的字符串集合中選取。一個ENUM類型允許從一個值集合中選擇單個值;SET類型允許從可選集合中選擇多個值。

enum類型:只能選擇一個值
mysql> create table data10 (gender enum(‘f’,'m’));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into data10 values(‘f’),(‘M’),(‘a’),(‘m’);
Query OK, 4 rows affected, 1 warning (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 1

mysql> select * from data10;
+——–+
| gender |
+——–+
| f |
| m |
| |
| m |
+——–+
4 rows in set (0.00 sec)

mysql> select * from data10 where gender=2;
+——–+
| gender |
+——–+
| m |
| m |
+——–+
2 rows in set (0.00 sec)

mysql> select * from data10 where gender=’m';
+——–+
| gender |
+——–+
| m |
| m |
+——–+
2 rows in set (0.00 sec)

mysql> select * from data10 where gender=0; ---顯示錯誤記錄
+——–+
| gender |
+——–+
| |
+——–+
1 row in set (0.00 sec)

set類型:能選擇多個值

mysql> create table data11 (test set(‘a’,'b’,'abc’,'d’,'e’));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into data11 values(‘a’),(‘b’),(‘abc’),(‘f’);
Query OK, 4 rows affected, 1 warning (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 1

mysql> select * from data11;
+——+
| test |
+——+
| a |
| b |
| abc |
| |
+——+
4 rows in set (0.00 sec)

==============================================================
字段約束
DEFAULT修飾符
可以使用DEFAULT修飾符為字段指定一個默認值。
創建了連接雇員和部門的表。默認情況下,雇員分配在MIS部門:

mysql> create table data12 (user char(10),dep char(5) default ‘MIS’);
Query OK, 0 rows affected (0.00 sec)

mysql> desc data12;
+——-+———-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+———-+——+—–+———+——-+
| user | char(10) | YES | | NULL | |
| dep | char(5) | YES | | MIS | |
+——-+———-+——+—–+———+——-+
2 rows in set (0.00 sec)
mysql> insert into data12 (user) values (‘mike’); ---只定義user,dep會是DEFAULT值MIS.
Query OK, 1 row affected (0.00 sec)

mysql> select * from data12;
+——+——+
| user | dep |
+——+——+
| mike | MIS |
+——+——+
1 row in set (0.00 sec)

mysql> insert into data12 (user,dep) values (‘mike’,'sal’);
Query OK, 1 row affected (0.00 sec)

mysql> select * from data12;
+——+——+
| user | dep |
+——+——+
| mike | MIS |
| mike | sal |
+——+——+
2 rows in set (0.00 sec)

mysql> insert into data12 values(); ---都不指定的情況
Query OK, 1 row affected (0.00 sec)

mysql> select * from data12;
+——+——+
| user | dep |
+——+——+
| mike | MIS |
| mike | sal |
| NULL | MIS |
+——+——+
3 rows in set (0.00 sec)

auto_increment修飾符
只適用于INT(×××)字段,表明MYSQL應該自動為該字段生成一個數(每此在前一個值的基礎上加1)。
對于主鍵(非空,不重復),這個非常有用的。

unique修飾符:
mysql> create table data15 (name char(10) unique);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into data15 values(‘mike’);
Query OK, 1 row affected (0.00 sec)

mysql> insert into data15 values(‘mike’); ---唯一的
ERROR 1062 (23000): Duplicate entry ‘mike’ for key ‘name’
mysql> insert into data15 values();
Query OK, 1 row affected (0.00 sec)

mysql> insert into data15 values(); ---可以添加多個空字符
Query OK, 1 row affected (0.00 sec)

mysql> select * from data15;
+——+
| name |
+——+
| NULL |
| NULL |
| mike |
+——+
3 rows in set (0.00 sec)


轉載于:https://blog.51cto.com/shanks/1307635

總結

以上是生活随笔為你收集整理的mysql-sql语句的全部內容,希望文章能夠幫你解決所遇到的問題。

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