MySQL:2、MySQL基礎語法

weixin_33912445發表於2017-12-17

Linux命令補充

Windows和Linux之間是rz sz

scp:

A機器(Linux)將檔案或者資料夾傳到B機器(Linux)
scp xxx.log root@xxx.xxx.xxx.xxxIP地址:/xxx/xxx
scp -r /xxx root@xxx.xxx.xxx.xxxIP地址:/xxx/xxx

A機器用xxx使用者傳送:
scp xxx.log IP地址:/xxx/xxx

等價於
scp xxx@IP地址:/xxxx/xxxx

軟連線:

路徑:
絕對路徑:cd /xxx/xxx/xxx
相對路徑:cd xxxx
ln -s 實際路徑 軟連線路徑(最好使用絕對路徑)

MySQL的基本概念

database db :資料庫
table : 表
db1:t1, t2, t3
db2:t2, t3, t4

欄位型別

http://www.runoob.com/mysql/mysql-data-types.html

整數型:int
小數型:float/double
字元:char
字串:varchar
時間:timestamp

常規命令

使用某個資料庫

use 資料庫名;

檢視資料庫下面所有的表

show tables;

檢視某個表的表結構

show create table 表名;

建立資料庫

create database 資料庫名;

建立表

create table 資料庫名.表名(欄位 型別,……)
例如:
    create table user(
        id int,
        name varchar(128),
        memory double,
        sex char(1),
        do varchar(100),
        cretime timestamp
    )CHARSET=utf8;

刪除表

drop table 表名;

插入資料

insert into 資料庫名.表名(列名) values(對應的值);
例如:
insert into user(id,name,memory,sex,do,cretime) values(1,'小米',10.22,'b','在打遊戲','2017-12-11 00:00:00');

insert into user values(1,'小米',10.22,'b','在打遊戲','2017-12-11 00:00:00');

insert into user(id, name) values(1,'小米');

查詢

select 欄位 from 資料庫名.表名;

例如

select * from user;
select * from user where id=3;
*:查詢所有的列

更新

update 資料庫名.表名 set 欄位名稱=新的值

例如:
update user set sex='g' where id=1;修改id為1的資料

update user set sex='g';修改全部的行

刪除

delete from 資料庫名.表名
例如:
delete from user;刪除所有的資料,慎用
delete from user where id=3;刪除id為3的資料

排序

order by xxx desc | asc
例如:
select * from user order by cretime 

select * from user order by cretime desc; 
select * from user order by cretime asc;

只取多少行資料

limit n
例如:
select * from user limit 2;

聚合語法

select 列1,列2……,sum(memory) from user group by 列1,列2…… having sum(memory) > 3000

聚合函式

count() : 求數量
sum() : 求和
avg() : 求平均

欄位別名

as xxx
等價SQL:使用子查詢語法

select * from(select dept, sum(sal) as sum_sal from salary group by dept) t where t.sum_sql > 5000;
兩張表關聯:

左連線:
A left join B on A.欄位=B.欄位  工作中用的最多 A表資料最全 <-- B表補全

右連線:
A right join B on A.欄位=B.欄位     A表補全 --> B表資料最全

內連線:
A inner join B on A.欄位=B.欄位  慎用

注意點:
只要滿足on條件,有幾行算幾行

例如:
select a.* b.deptno,b.dname from emp a left join dept b on a.deptno=b.deptno;

select a.* b.deptno,b.dname from emp a right join dept b on a.deptno=b.deptno;

建立db,user

create database 資料庫名;
grant all privileges on 資料庫名.* to 某個使用者名稱@'%' identified by '密碼';
flush privileges;

注意點

只要涉及許可權修改,必須執行flush privileges;

% 允許所有的IP都可以訪問(許可權危險)
192.168.%.%
建立使用者並授權,同時限制只能在某個IP或者IP段上的機器才能訪問

謹記:
    flush privileges; 或者重啟MySQL服務

補充點

1.登入
    mysql -uroot -p123456 -h127.0.0.1
2.dbeaver(企業使用的軟體)

mysqladmin環境變數

vi .bash_profile

# .bash_profile
# Get the aliases and functions

if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
export MYSQL_BASE=/usr/local/mysql
export PATH=${MYSQL_BASE}/bin:$PATH

PS1=`uname -n`":"'$USER'":"'$PWD'":>"; export PS1