檢索數據
mysql 語法,關鍵字,最好用大寫(和數據庫,table,id,信息區分)
MySql中添加用戶,新建數據庫,用戶授權,刪除用戶,修改密碼
查看已有用戶:
select user,host,password from mysql.user;
使用
linux 我用來當服務器用,使用前需要添加用戶
CREATE USER 'myusername'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL ON *.* TO 'myusername'@'%';
#添加myusername到192.168.1.254
GRANT ALL PRIVILEGES ON *.* TO 'myusername'@'192.168.1.254' WITH GRANT OPTION;
#或者這里也可以指定賬號
GRANT ALL PRIVILEGES ON *.* TO 'myusername'@'%' WITH GRANT OPTION;
#或者這里也可以指定賬號+密碼
GRANT ALL PRIVILEGES ON *.* TO ‘myusername’@'%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
windows 我用來當client用
設置下環境變量
MYSQL_PATH
D:\Program Files\mysql-5.7.10-winx64\bin
然后添加到【path】中
#windows 安裝后台服務
> mysqld -install
> mysqld -remove
> mysql -h 192.168.1.254 -u myusername -p
enter passowrd【mypassword】
然后就可以使用遠程linux的Mysql服務器。
/////////////////////////////下面是一些練習和常用命令
char(M)類型的數據列里,每個值都占用M個字節,如果某個長度小於M,MySQL就會在它的右邊用空格字符補足.(在檢索操作中那些填補出來的空格字符將被去掉)
在varchar(M)類型的數據列里,每個值只占用剛好夠用的字節再加上一個用來記錄其長度的字節(即總長度為L+1字節).
所以一般用varchar
http://blog.csdn.net/zjgnl/article/details/8936644
- 修改 root 賬號的密碼
剛安裝完成時root賬號默認密碼為空,此時可以將密碼修改為指定的密碼。如:123456
//查看本地端口 是否正在監聽
netstat -an|grep 3306
service mysql restart//linux 重啟服務
service mysql start
service mysql stop
net restart mysql//windows 重啟服務
net start mysql
net stop mysql
方法一:
c:>mysql –uroot
mysql>SHOW DATABASES;
mysql>USE mysql;
mysql>UPDATE user SET password=PASSWORD("123456") WHERE user='root';
mysql>FLUSH PRIVILEGES;
mysql>QUIT
方法二:
利用第三方管理工具進行密碼修改。如Navicat for MySQL
//////////////////////////////////////////////////////////////////////////////////////////////////
mysql --version
登錄
mysql –u root -p
//mysql -h localhost -u scott2 -p; //如果需要 密碼,
//默認是空,所以直接Enter 就可以
mysql -h localhost -u scott2;
SHOW DATABASES; //顯示 所有數據庫
CREATE DATABASE test_db; //create a database
SHOW DATABASES; //顯示 所有數據庫
SHOW CREATE DATABASE test_db\G;//查看 數據庫test_db的定義 和一些信息
DROP DATABASE test_db;//刪除 數據庫test_db,不能恢復
//=====================================
USE test_db; //使用一個 database
//1.創建 table
CREATE TABLE test_table
(
id INT(11),
name VARCHAR(25),
department INT(11),
salary FLOAT,
);
2.
//2.1 創建 table , 使用 主鍵約束
//字段名 數據類型 PRIMARY KEY [默認值],
CREATE TABLE test_table
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
department INT(11),
salary FLOAT,
);
//2.2 定義完所有列 之后 ,指定 主鍵
CREATE TABLE test_table
(
id INT(11),
name VARCHAR(25),
department INT(11),
salary FLOAT,
PRIMARY KEY(id)
);
//多個主鍵
CREATE TABLE test_table
(
id INT(11),
name VARCHAR(25),
department INT(11),
salary FLOAT,
PRIMARY KEY(id,name,department)
);
3.
//2.創建 table , 使用 外鍵約束
CREATE TABLE test_table
(
id INT(11),
name VARCHAR(25),
department INT(11),
salary FLOAT,
);
//用sql文件創建table
mysql -h 192.168.1.254 -d testDB -u username -ppassword < createTableStudents.sql
//插入中文字符用'', 字段用char(10) 大小自定義,varchar(10), char定長,varchar不定長,
//varchar最后會有1~2字節的size,如果實際的數據不多,varchar空間效率更高。(比如 地址)
//如果固定的size 比如電話號碼,用固定的char cpu效率更高點。
//VARCHAR是可變字符串
CREAT TABLE TEST_TABLE(name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
//這是createTableStudents.sql
create table students
(
id int unsigned not null auto_increment primary key,
name char(8) not null,
sex char(6) not null,
age tinyint unsigned not null,
tel char(13) null default "-"
);
mysql> desc students;//顯示table students的表結構。
+-------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | char(8) | NO | | NULL | |
| sex | char(6) | NO | | NULL | |
| age | tinyint(3) unsigned | NO | | NULL | |
| tel | char(13) | YES | | - | |
+-------+---------------------+------+-----+---------+----------------+
//插入多個數據的時候,用value 或者values 都可以
//id是自增長的,但是也可以指定,或者更改
insert into students (id,name,sex,age,tel) value (1,'何X','mela',28,157121xxx73);
//可以省略id,會自動增長
insert into students (name,sex,age,tel) value ('小明','mela',27,157121xxx73);
//可以省略前面的key,直接寫值
insert into students value ('小明','mela',27,157121xxx73);
//可以直接賦值
insert into students value name= '小明', sex='mela', age=27, tel=157121xxx73;
//顯示table [students]中 所有插入的信息
select * from students;
//插入三條數據
mysql> insert into ttt values(001,'tom', 1101, 999999.1111);
mysql> insert into ttt values(002,'shelton', 1101, 999999.1111);
mysql> insert into ttt values(003,'linken', 1101, 999999.1111);
=====================================================
help show;//顯示所有的show命令
show status;//顯示服務器信息
//mysql查看表結構命令,如下:
desc 表名;
describe 表名;
show columns from 表名;
//顯示表結構 + 存儲引擎 + 字符集
show create table 表名;
use information_schema
//查詢數據
mysql> select * from ttt;
//刪除數據庫
drop database studnetDB;
//刪除table
drop table
//刪除數據
delete from ttt where id=3;
順便記下:
show databases;
use 數據庫名;
show tables;
顯示表中的信息
//顯示表中的所有信息
select * from students;
//所有單列column 信息
select name from students;
//所有多列columns 信息
select id,name,tel from students;
//所有columns 信息,去掉重復的信息(比如lily,lucy是雙胞胎,列出家訪地址:就只要一個地址就可以)
select dinstnct addressInfo from students;
//都是從第20行開始, 列出5條信息。 (index 從0開始)
SELECT id FROM LIMIT 20,5;
SELECT id FROM LIMIT 5 OFFSET 20;
//完全限定表名
SELECT students.id FROM students;
SELECT students.id FROM testDB.students;
注釋
#xxxx
/* xxxx */
//原有一unique索引AK_PAS_Name(PAC_Name)在表tb_webparamcounter中,
//執行以下sql修改索引
alter table tb_webparamcounter drop index AK_PAS_Name;
alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name);
//若發現索引的邏輯不對,還需要再加一個字段進去,執行
alter table tb_webparamcounter drop index AK_PAS_Name;
alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name,PAC_Value);
//注意:這時的PC_ID,PAC_Name,PAC_Value三個字段不是FOREIGN KEY
//否則必需先drop FOREIGN KEY,再重做上一步才行
//順便提下oracle
select * from v$database;
select * from all_users;
select * from user_tables;
mysqldump [options] |gzip ->mysqldump-$(date +%Y-%m-%d-%H.%M.%S).gz 轉存mysql數據庫