格式: mysql -h主机地址 -u用户名 -p用户密码 mysql
一、例1:链接到本机上的MYSQL。(mysql-uroot-p12344)linux
首先在打开DOS窗口,而后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,若是刚安装好MYSQL,超级用户root是没有密码的,故直接回车便可进入到MYSQL中了,MYSQL的提示符是: mysql<。sql
二、例2:链接到远程主机上的MYSQL。( mysql -h10.20.0.88-uroot-p12344 )数据库
假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入如下命令:服务器
mysql -h110.110.110.110 -uroot -pabcd123ide
(注:u与root能够不用加空格,其它也同样)函数
三、退出MYSQL命令: exit (回车)。ui
1.linux下启动mysql的命令:编码
mysqladmin startspa
/ect/init.d/mysql start (前面为mysql的安装路径)
2.linux下重启mysql的命令:
mysqladmin restart
/ect/init.d/mysql restart (前面为mysql的安装路径)
3.linux下关闭mysql的命令:
mysqladmin -u root -p密码 shutdown
/ect/init.d/mysql shutdown (前面为mysql的安装路径)
4.链接本机上的mysql:
进入目录mysql\bin,再键入命令mysql -uroot -p, 回车后提示输入密码。
退出mysql命令:exit(回车)
5.修改mysql密码:
mysqladmin -u用户名 -p旧密码 password 新密码
或进入mysql命令行SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
GRANT USAGE ON *.* TO '用户名'@'主机' IDENTIFIED BY 'biscuit';
修改本身的密码SET PASSWORD = PASSWORD('biscuit');
6.增长新用户。(注意:mysql环境中的命令后面都带一个分号做为命令结束符)
grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;
flush privileges;(刷新权限设置)
grant select on 数据库.* to 用户名@登陆主机 identified by "密码"
如增长一个用户test密码为123,让他能够在任何主机上登陆, 并对全部数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,而后键入如下命令:
grant select,insert,update,delete on *.* to " Identified by "123";
7.跳过受权访问mysql
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
必须首先登陆到mysql中,有关操做都是在mysql的提示符下进行,并且每一个命令以分号结束
一、显示数据库列表。
show databases;
二、建数据库:
create database 库名;
三、建表:
use mysql; //打开库
create table 表名(字段设定列表);
4,增删表列
(1)添加单列
ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
例如:ALTER TABLE users1 ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10;
在 id 后面添加 username属性:ALTER TABLE users1 ADD password VARCHAR(32) NOT NULL AFTER username;
(2)添加多列
ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition,...)
(3)删除列
ALTER TABLE tbl_name DROP [COLUMN] col_name
例如:ALTER TABLE users1 DROP truename;
(4)一次删除多列:
ALTER TABLE uses1 DROP password,DROP age;
也能删除一列的同时,新增一列。其间用逗号隔开。
5,修改列约束
(5)添加主键约束:
ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] PRIMARY KEY[index_type] (col_name);
(6)添加惟一约束
ALTER TABLE tbl_name ADD UNIQUE(col_name);
(7)添加外键约束
ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] FOREIGN KEY [index_type](外键列) REFERENCES 父类(参考列);
(8)删除主键约束
ALTER TABLE table_name DROP PRIMARY KEY;
(9)删除惟一约束
ALTER TABLE table_name DROP {INDEX|KEY} index_name;
(10)删除外键约束
ALTER TABLE table_name DROP FOREIGN KEY fk_symbol;
(11)添加/删除默认约束:
ALTER TABLE table_name ALTER [COLUMN] column_name SET DEFAULT literal
ALTER TABLE table_name ALTER [COLUMN] column_name DROP DEFAULT
6,修改列定义
(1)修改列定义
ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST |AFTER col_name];
(2)修改列名称
ALTER TABLE tbl_name CHANGE [COLUMN] col_name new_col_name column_definition [FIRST|AFTER col_name];
(3)数据表改名
7,修改数据表名
ALTER TABLE tbl_name RENAME [TO/AS] new_tbl_name
9,显示建立表和索引
显示建立表的语句:SHOW CREATE TABLE table_name;
查看表是否有索引:SHOW INDEXS FROM table_name;
十、显示库中的数据表
show tables;
十一、显示数据表的结构
describe 表名;(desc)
SHOW COLUMNS FROM 表名;
十二、删库和删表
drop database 库名;
drop table 表名;
13,显示所属的数据库
SELECT DATABASE();
1四、编码的修改
若是要改变整个mysql的编码格式:
启动mysql的时候,mysqld_safe命令行加入
--default-character-set=gbk
若是要改变某个库的编码格式:在mysql提示符后输入命令
alter database db_name default character set gbk;
四种基本操做:
操做 |
说明 |
INSERT | 第一种: INSERT [INTO] tb1_name [(col_name,...)] VALUES(val,...),(val1,...); //INSERT 关键字,INTO 可省略,tb1_name 数据表的名称 当字段有自动增长的属性后,在插入表的全部字段的数据时,能够填写 NULL 或 DEFAULT 这两个关键字,表示按照原先默认自动增加的属性 第二种: INSERT [INTO] tb1_name SET col_name={expr|DEFAULT},…… 只能一次性插入一条记录 第三种: insert table_name [(colname...)] select..... 把查询到的结果插入到指定数据表中 |
UPDATE | update <表名> |
DELETE |
一、删除记录DELETE:分为单表删除和多表删除 |
SELECT | SELECT select_expr [,select expr2...] 只查找某一个函数或表达式 使用[AS] alias_name为其赋予别名 []均可以省略,如select version(); SELECT * FROM tdb_goods\G; // 网格形式输出查询结果 |
条件:
条件 |
说明 |
WHERE |
在WHERE表达式中,可使用MySQL支持的函数或运算符 |
GROUP BY |
查询结果分组: |
HAVING |
利用GROUP BY 分组 添加分组条件 [HAVING where_condition],HAVING的字段要么在select中出现,要么是聚合函数(只有一个结果),如count(id) > 1; SELECT sex FROM users GROUP BY 1 HAVING age > 35; //有错 SELECT sex FROM users GROUP BY 1 HAVING count(id) >= 2;
|
ORDER BY |
对查询结果进行排序,默认是升序 |
LIMIT |
一、限制查询结果返回的数量:[LIMIT {[offset,] row_count|row_count OFFSET offset}] |
约束名 |
说明 |
UNSIGNED |
无符号 |
空值与非空 |
NULL,字段值能够为空 NOT NULL,字段值禁止为空,不赋值会报错 |
AUTO_INCREMENT |
自动编号,且必须与主键配合使用,保证记录的惟一性,类型必须为整型(能够是FLOAT(5,0)等,小数点后必须为0),默认状况下。起始值为1,每次的增量为1 |
PRIMARY KEY(KEY) |
主键约束 主键保证记录的惟一性 |
UNIQUE KEY |
惟一约束 惟一约束能够保证记录的惟一性 |
DEFAULT |
默认约束 默认值 |
FOREIGN KEY |
外键约束 保持数据一致性,完整性;实现一对一或一对多关系。 要求: 父表和子表必须使用相同的存储引擎,并且禁止使用临时表; 数据表的存储引擎只能为InnoDB; 外键列和参照列必须具备相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则能够不一样; 外键列和参照列必须建立索引。若是外键列不存在索引的话,MySQL将自动建立索引。 在 MY.ini 文件中编辑默认的存储引擎:default-storage-engine=INNODB; 外键约束的参照操做: 1. CASCADE: 从父表删除或更新且自动删除或更新子表中匹配的行。 如:FOREIGN KEY (key_name) REFERENCEES table_name (key_name) ON DELETE CASCADE; ON DELETE \ ON UPDATE 2. SET NULL: 从父表删除或更新行,并设置子表中的外键列为NULL。若是使用该选项,必须保证子表列没有指定NOT NULL。 3. RESTRICT: 拒绝对父表的删除或者更新操做。 4. NO ACTION: 标准SQL的关键字,在MySQL中与RESTRICT相同。 |
1.表级约束与列级约束
(1)对一个数据列创建的约束,称为列级约束
(2)对多个数据列创建的约束,称为表级约束
(3)列级约束既能够在列定义时声明,也能够在列定之后声明
(4)表级约束只能在列定义后声明
2.主键、外键、非空、惟1、check,default都是约束条件。主键、外键、既能够做为表级约束,也可做为列级约束
而像非空、惟一等( not null, default )只有列级约束
从本地文件load数据到表(LOAD DATA语句中指出列值的分隔符和行尾标记,可是默认标记是定位符和换行符)
LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
LINES TERMINATED BY '\r\n';
1,mysqldump的几种经常使用方法
(1)导出整个数据库(包括数据库中的数据)
mysqldump -u username -p dbname > dbname.sql
(2)导出数据库结构(不含数据)
mysqldump -u username -p -d dbname > dbname.sql
(3)导出数据库中的某张数据表(包含数据)
mysqldump -u username -p dbname tablename > tablename.sql
(4)导出数据库中的某张数据表的表结构(不含数据)
mysqldump -u username -p -d dbname tablename > tablename.sql
2,导入数据库
一、首先建空数据库
mysql>create database abc;
二、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysqldump -u username -p -d dbname tablename > tablename.sql
#mysql -uroot -p123456 ps_se_sample_platform < experiment.sql
设置用户独有的使用权限,your_mysql_name用户名,your_client_host主机名
GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';
一、show global status;列出MySQL服务器运行各类状态值
二、show variables;查询MySQL服务器配置信息语句
三、查看慢查询
show variables like '%slow%';
show global status like '%slow%';
四、最大链接数
show variables like 'max_connections';MySQL服务器最大链接数
show global status like 'Max_used_connections'; 服务器响应的最大链接数
五、查看表结构
desc Tablename;
describe Tablename;
show columns from Tablename;
show create table Tablename;