重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
這個是SQL SERVER的語法,MY SQL的思路應該是類似的
創新互聯是一家專業提供和林格爾企業網站建設,專注與做網站、成都網站制作、H5高端網站建設、小程序制作等業務。10年已為和林格爾眾多企業、政府機構等服務。創新互聯專業網站設計公司優惠進行中。
---------------------------------------------------------
select
*
from
(select
isnull(sum(online_count),0) h16
from
#a
where
datepart(hh,watch_time)=16) a,
(select
isnull(sum(online_count),0) h17
from
#a
where
datepart(hh,watch_time)=17) b,
(select
isnull(sum(online_count),0) h18
from
#a
where
datepart(hh,watch_time)=18) c,
(select
isnull(sum(online_count),0) h19
from
#a
where
datepart(hh,watch_time)=19) d
1、打開瀏覽器搜索“sqlyog”并下載這個客戶端軟件。
2、然后安裝之后打開客戶端軟件。
3、然后點擊“新建”新建一個連接,然后填寫mysql主機地址、用戶名、密碼,端口,然后點擊下面的連接。
4、然后在左側選擇自己要連接的數據庫。
5、然后在Query下面的空白地方輸寫自己的sql語句。
6、然后點擊如圖所示的圖標,進行執行自己寫好的sql語句,就完成了sql的基本操作。
SELECT INTO 語句
SELECT INTO 語句從一個表中選取數據,然后把數據插入另一個表中。
SELECT INTO 語句常用于創建表的備份復件或者用于對記錄進行存檔。
SQL SELECT INTO 語法
您可以把所有的列插入新表:
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
或者只把希望的列插入新表:
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename
所以應該這么寫
SELECT?b.列1,b.列2
INTO?a
FROM?b
WHERE?id=1
---注:b表中插入a表中的列不能有a不包含的列,也就是說上面語句的b.列1,b.列2這些中不能有a中不包含的列
Mysql常用命令詳解
Mysql安裝目錄
數據庫目錄
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相關命令
/usr/bin(mysqladmin mysqldump等命令)
啟動腳本
/etc/init.d/mysql(啟動腳本文件mysql的目錄)
系統管理
連接MySQL
格式:
mysql -h 主機地址 -u用戶名 -p用戶密碼
例 1:連接到本機上的 MySQL。
hadoop@ubuntu:~$ mysql
-uroot -pmysql;
例 2:連接到遠程主機上的 MYSQL。
hadoop@ubuntu:~$ mysql -h
127.0.0.1 -uroot -pmysql;
修改新密碼
在終端輸入:mysql -u用戶名 -p密碼,回車進入Mysql。
use mysql;
update user set password=PASSWORD('新密碼') where
user='用戶名';
flush privileges; #更新權限
quit; #退出
增加新用戶
格式:grant select on 數據庫.* to
用戶名@登錄主機 identified by '密碼'
舉例:
例 1:增加一個用戶 test1 密碼為
abc,讓他可以在任何主機上登錄,并對所有數據庫有
查詢、插入、修改、刪除的權限。首先用以 root 用戶連入
MySQL,然后鍵入以下命令:
mysqlgrant select,insert,update,delete on *.* to
root@localhost identified by 'mysql';
或者
grant all privileges on *.* to
root@localhost identified by 'mysql';
然后刷新權限設置。
flush privileges;
例
2:如果你不想 root 有密碼操作數據庫“mydb”里的數據表,可以再打一個命令將密碼消掉。
grant
select,insert,update,delete on mydb.* to root@localhost identified by
'';
刪除用戶
hadoop@ubuntu:~$ mysql
-u用戶名 -p密碼
mysqldelete from user where user='用戶名' and
host='localhost';
mysqlflush privileges;
//刪除用戶的數據庫
mysqldrop
database dbname;
數據庫操作
顯示所有的數據庫
mysql show databases;(注意:最后有個
s)
創建數據庫
mysql create database
test;
連接數據庫
mysql use
test;
查看當前使用的數據庫
mysql select
database();
當前數據庫包含的表信息
mysql
show tables; (注意:最后有個 s)
刪除數據庫
mysql drop database
test;
表操作
備注:操作之前使用“use
數據庫名”應連接某個數據庫。
建表
命令:create
table 表名 (字段名 1 類型 1 [,..字段名 n 類型
n]);
例子:
mysql create table MyClass(
id int(4) not null
primary key auto_increment,
name char(20) not null,
sex int(4)
not null default '0',
degree double(16,2));
獲取表結構
命令: desc 表名,或者show columns from
表名
例子:
mysql describe MyClass
mysql desc MyClass;
mysql
show columns from MyClass;
刪除表
命令:drop table 表名
例如:刪除表名為
MyClass 的表
mysql drop table MyClass;
插入數據
命令:insert into 表名 [( 字段名
1[,..字段名 n ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql insert
into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang',
96.59);
查詢表中的數據
查詢所有行
mysql
select * from MyClass;
查詢前幾行數據
例如:查看表 MyClass 中前 2 行數據
mysql
select * from MyClass order by id limit 0,2;
或者
mysql select * from
MyClass limit 0,2;
刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表
MyClass 中編號為 1 的記錄
mysql delete from MyClass where id=1;
修改表中數據
命令:update 表名 set 字段=新值,... where
條件
mysql update MyClass set name='Mary' where id=1;
在表中增加字段
命令:alter table 表名 add 字段 類型
其他;
例如:在表 MyClass 中添加了一個字段 passtest,類型為 int(4),默認值為 0
mysql alter
table MyClass add passtest int(4) default '0'
更改表名
命令:rename table 原表名 to 新表名;
例如:在表
MyClass 名字更改為 YouClass
mysql rename table MyClass to
YouClass;
更新字段內容
命令:update 表名 set
字段名 = 新內容
update 表名 set 字段名 = replace(字段名, '舊內容', '新內容');
例如:文章前面加入 4
個空格
update article set content=concat(' ', content);
數據庫導入導出
從數據庫導出數據庫文件
使用“mysqldump”命令
首先進入 DOS
界面,然后進行下面操作。
1)導出所有數據庫
格式:mysqldump -u [數據庫用戶名] -p
-A[備份文件的保存路徑]
2)導出數據和數據結構
格式:mysqldump -u [數據庫用戶名] -p
[要備份的數據庫名稱][備份文件的保存路徑]
舉例:
例 1:將數據庫 mydb 導出到 e:\MySQL\mydb.sql
文件中。
打開開始-運行-輸入“cmd”,進入命令行模式。
c:\ mysqldump -h localhost -u
root -p mydb e:\MySQL\mydb.sql
然后輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。
例
2:將數據庫 mydb 中的 mytable 導出到 e:\MySQL\mytable.sql 文件中。
c:\ mysqldump -h
localhost -u root -p mydb mytablee:\MySQL\mytable.sql
例 3:將數據庫 mydb
的結構導出到 e:\MySQL\mydb_stru.sql 文件中。
c:\ mysqldump -h localhost -u root -p
mydb --add-drop-table e:\MySQL\mydb_stru.sql
備注:-h localhost
可以省略,其一般在虛擬主機上用。
3)只導出數據不導出數據結構
格式:
mysqldump -u [數據庫用戶名] -p -t
[要備份的數據庫名稱][備份文件的保存路徑]
4)導出數據庫中的Events
格式:mysqldump -u [數據庫用戶名] -p
-E [數據庫用戶名][備份文件的保存路徑]
5)導出數據庫中的存儲過程和函數
格式:mysqldump -u [數據庫用戶名]
-p -R [數據庫用戶名][備份文件的保存路徑]
從外部文件導入數據庫中
1)使用“source”命令
首先進入“mysql”命令控制臺,然后創建數據庫,然后使用該數據庫。最后執行下面操作。
mysqlsource
[備份文件的保存路徑]
2)使用“”符號
首先進入“mysql”命令控制臺,然后創建數據庫,然后退出 MySQL,進入 DOS
界面。最后執行下面操作。
mysql -u root –p [備份文件的保存路徑]
創建存儲過程
mysql delimiter $ -- delimiter $是設置 $為命令終止符號,代替默認的分號,因為分號有其他用處.
mysql create procedure sp_test(IN pi_id int, OUT po_name varchar(10))
- begin
- select * from test.tb_test;
- select tb_test.name into po_name from test.tb_test where tb_test.id = pi_id;
- end
- $
Query OK, 0 rows affected (0.00 sec)
mysql delimiter ; -- 恢復分號作為分隔終止符號
5.調用存儲過程
mysql set @po_name='';
Query OK, 0 rows affected (0.00 sec)
mysql call sp_test(1,@po_name);