一.数据库操作
1.查看数据库:
mysql> show databases; mysql> show databases \G #以行的方式显示 mysql> show table status from test where name='student' \G
2.创建一个名为HA的数据库
mysql> create database HA;
3.删除数据库:
mysql> drop database HA-test
二.表操作:
1.查看表
mysql> show tables;
2.创建表
mysql> create table student(id int(20),name char(40),age int);语法:create table 表名 (字段名 类型, 字段名 类型, 字段名 类型);
3.查看表的结构
mysql> desc student;
4.查看创建语句时的过程
mysql> show create table student \G
5.创建数据库表可以指定表的默认存储引擎和字符集
mysql> create table student2(id int(20),name char(40),age int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
6.删除表
mysql> drop table student2;
7.studen表名修改为students
mysql>alter table student rename students;
8.将name字段 改成 stname
mysql> alter table students change name stname char(20);
9.添加字段
mysql> alter table students add sex enum('M','W');语法:alter table 表名 add 字段名 字段类型;
10.指定位置添加字段:
mysql> alter table students add uid int(10) first;在第一列添加一个字段; mysql> alter table students add address char(40) after age;在age后面添加一个address字段:
11.删除表中字段:
mysql> alter table students drop address;语法:alter table 表名 drop 字段名 ;
三.关于记录的操作
1.查询表所有
mysql> select * from students;*表示所有
2.只查询表中某个字段的内容
mysql> select name from student;
3.查看某个数据库下指定的表内容
mysql> select *from HA.student; 数据库名.表名 语法:SELECT 字段 FROM 数据库名.表名;
4.添加记录
mysql> insert into students values(1,'zhangs',21);语法:insert into 表名values (字段值1,字段值2, 字段值3);
5.同时插入多条记录,使用,分开
mysql> insert into student values(2,'lis',24),(3,'wange',26);
6.删除记录
mysql> delete from students where id=3;删除id为3的行
7.更新记录
mysql> update students set sex='M' where id=2; 从id 为2 的 sex 改成M mysql> update students set age=10 where id=2 ; 从id为2 的 age 改成10 mysql> update students set id=2; 所有的都变为2
8.同时更新多个字段
mysql> update students set stname='zhangsan',age=21 where uid=1; 从uid 为1 的
四.SQL基础条件查询语句
1.查询STUDENTS表中的NAME,AGE
mysql> select name,age from students;
2.查询id > 3并且age >25 的记录
mysql> select id,name,age from students where id>3 and age>25;
3.查询name=lis 并且 age = 21 或者age = 10 的记录
mysql> select * from students where name='lis' and (age=21 or age=10);
五.模糊查询:
1.查询表中name 字段li 开头的记录
mysql> select * from student where name like 'li%';
2.查询表中 有is 并且有a的记录
mysql>select * from student where name like '%is%' and name like '%a%'; +------+------------+------+ | id | name | age | +------+------------+------+ | 7 | siswaisaaa | 20 | +------+------------+------+ 1 row in set (0.00 sec)
3.查看name 为ZHANGS 的记录 大写Mysql查询默认是不区分大小写的
mysql> select name from students where binary name='ZHANGS';
查询id 升序查询
mysql> select distinct id from students order by id;
4.查询id降序查询
mysql> select distinct id,name from students order by id desc;### 查询id 降序查询
六.mysql 设置密码
方法1; mysql> set password for root@localhost = password('123456');
方法2:用mysqladmin 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表 首先登录MySQL。 mysql> use mysql; mysql> update user set password=password('123') where user='root' and host='localhost'; mysql> flush privileges;刷新
七.mysql备份
1.mysqldump
[root@xuegod210 ~]# mysqldump -uroot -p123456 HA > HA.dump 备份完整数据
[root@xuegod210 ~]# mysqldump -uroot -p123456 --no-data --databases HA > ha.dump 备份表结构(没有完整数据)
2.导入数据
mysql> source /root/books.sql; ##导入表时,不需要重新,创建表。 先use 库
八.修改mysql的默认引擎
1.看你的mysql现在已提供什么存储引擎:
mysql> show engines;
2.看你的mysql当前默认的存储引擎:
mysql> show variables like '%storage_engine%'; alter table student engine=innodb;
3修改数据库引擎:
mysql> alter table student engine=innodb; 修改表的引擎
九.mysql主从原理
主从复制如何工作
整体上来说,复制有3 个步骤:
(1) master 将改发记录到二迚制日志(binary log)中(这些记录叨做二迚制日志事件,binarylog events);
(2) slave 将master 的binary log events 拷贝到它的中继日志(relay log);
(3) slave 重做中继日志中的事件,修改salve 上的数据;