本文介紹mysql的簡單操作。
連線資料庫
安裝 mysql 客戶端:
1sudo apt install mysql-client-core-5.7
命令列:
5mysql -uroot -p123456
mysql -h latelee.org -p 3305 -ulatelee -p1qaz@wsx
mysql -h latelee.org -p 3305 -uroot -p1qaz@wsx**>>
mysql -h 127.0.0.1 -p 3306 -u root -p123456
注:不同使用者連線,看到的資料庫亦不同。
3type 'help;' or '\h' for help. type '\c' to clear the current input statement.
mysql>
在mysql>後即可輸入sql語句。sql語句使用分號「;」作為結束符號。
退出mysql命令列:
1exit
資料庫操作
資料庫、表
檢視資料庫:
10mysql> show databases;
| database |
| information_schema |
| mysql |
| performance_schema |
| sys |
4 rows in set (0.00 sec)
建立資料庫,名稱為mydb:
2mysql> create database mydb;
選擇mydb資料庫:
1mysql> use mydb;
建立資料表user:
19mysql> create table `user` (
`id` bigint(20) not null,
`email` varchar(255) default null,
`first_name` varchar(255) default null,
`last_name` varchar(255) default null,
`username` varchar(255) default null,
primary key (`id`)
) engine=innodb default charset=utf8;
// id值為自增
mysql> create table `user` (
`id` bigint(20) not null auto_increment,
`email` varchar(255) default null,
`first_name` varchar(255) default null,
`last_name` varchar(255) default null,
`username` varchar(255) default null,
primary key (`id`)
) engine=innodb default charset=utf8;
檢視user資料表字段內容:
11mysql> desc user;
| field | type | null | key | default | extra |
| id | bigint(20) | no | pri | null | |
| email | varchar(255) | yes | | null | |
| first_name | varchar(255) | yes | | null | |
| last_name | varchar(255) | yes | | null | |
| username | varchar(255) | yes | | null | |
5 rows in set (0.02 sec)
增往user表插入資料:
12mysql> insert into `user` (`id`, `email`, `first_name`, `last_name`, `username`)
values(0,'[email protected]','late','lee','latelee');
// 自增情況下,不輸入id
mysql> insert into `user` (`email`, `first_name`, `last_name`, `username`)
values('[email protected]','late','lee','foobar');
// 注:網上有說法id預設自增為2,但測試未發現
todo:
有針對地插入資料
預設所有字段
檢視已經插入了的資料:
7mysql> select * from user;
| id | email | first_name | last_name | username |
| 0 | [email protected] | late | lee | latelee |
1 row in set (0.00 sec)
刪刪除user表所有資料:
1mysql> delete from user;
刪除user資料表:
1mysql> drop table user;
刪除資料庫mydb:
1mysql> drop database mydb;
改更新資料:
3mysql> update user set email='[email protected]' where username='foobar';
mysql> update user set email='[email protected]', first_name='kent' where username='foobar';
查查找倒數10條記錄:
2select top 10 * from [dbo].[realtimedata] order by i desc; // sqlserver
select * from realtimedata order by id desc limit 10; // mysql
其它欄位為中文:
20mysql> create table `userc` (
`資訊id` bigint(20) not null auto_increment,
`郵箱位址` varchar(255) default null,
`名` varchar(255) default null,
`姓` varchar(255) default null,
`姓名` varchar(255) default null,
primary key (`資訊id`)
) engine=innodb default charset=utf8;
mysql> desc userc;
| field | type | null | key | default | extra |
| 資訊id | bigint(20) | no | pri | null | auto_increment |
| 郵箱位址 | varchar(255) | yes | | null | |
| 名 | varchar(255) | yes | | null | |
| 姓 | varchar(255) | yes | | null | |
| 姓名 | varchar(255) | yes | | null | |
5 rows in set (0.00 sec)
38create database cameradb;
use cameradb;
create table `devinfo` (
`devid` varchar(16) not null,
`version` varchar(255) default null,
primary key (`devid`)
) engine=innodb default charset=utf8;
desc devinfo;
select * from devinfo;
insert into `devinfo` (`devid`, `version`)
values('sn_test001','v1.0');
insert into `devinfo` (`devid`, `version`)
values('sn_test002','v1.0');
insert into `devinfo` (`devid`, `version`)
values('sn_test100','v1.0');
insert into `devinfo` (`devid`, `version`)
values('sn_test200','v1.0');
新增字段
末尾:alter table devinfo add ip varchar(16);
開頭:alter table devinfo add netmask varchar(16) first;
指定欄位後:
alter table devinfo add gateway varchar(16) after devid;
刪除字段
alter table devinfo drop column ip;
積累的問題
mysql 新版本密碼配置連線問題。
解決:6更改加密方式:
mysql> alter user 'root'@'localhost' identified by 'password' password expire never;
更改密碼:
alter user 'root'@'localhost' identified with mysql_native_password by 'password';
重新整理許可權:
flush privileges;
mysql與安全 mysql許可權與安全
一 mysql許可權系統通過兩個階段進行認證 a 對使用者進行身份認證,ip位址和使用者名稱聯合,b 對合法使用者賦予相應許可權,許可權表在資料庫啟動的時候載入記憶體中。二 在許可權的訪問過程中,會用到 mysql 資料庫中的user host和db這3個許可權表。兩階段驗證過程 a user表中 ...
mysql控制代碼 MySQL與控制代碼 MySQL
bitscn.com 1.環境 os win 2003 server x86 db mysql 5.1.30 community log 2.問題 mysql server占用的控制代碼數過大,使用過程消費控制代碼速度比釋放速度來的快,部分其他應用申請不到控制代碼,導致不可用。2.1.handle ...
mysql教程 mysql事務與mysql儲存引擎
事務概念及儲存引擎 1.0為何要事務?先來看乙個場景,銀行轉賬匯款 李彥巨集和周鴻?天天打架,現在讓李彥巨集給周鴻?轉款1000元 設計如下表 account表 編號 id 使用者名稱 user 金額 cash 1 李彥巨集 3000 2 周鴻?2000 傳統的做法 mysql update acc...