命令行连接数据库
首先正常使用时,需要找到MySQL所在bin目录,例如:
-u 用户名 -p 密码 -P 端口号 端口号为3306的话可以省略。
$ /usr/local/mysql/bin/mysql -hlocalhost -u root -p -P
$ /usr/local/mysql/bin/mysql -u root -p
Enter password:
退出数据库 输入1) exit;2) quit;3) \q
操作数据库
1)显示数据库:show databases;
mysql> show databases;
2)创建数据库:create database dbname [charset=字符编码];
mysql> create database test;
mysql> create database bb charset=utf8;
a)如果创建已存在的数据库,会报错显示已存在。创建的时候判断一下:create database if not exists dbname;
b)如果创建的数据库名字为关键字,会报错。解决方法:在名字上加上反引号 ` create database `create`;
3)显示数据库的创建语句
show create database dbname;
4)修改数据库的字符编码
alter database 数据库名 [选项];
5)删除数据库
drop database dbname;
如果删除不存在的数据库会报错,在删除之前判断数据库是否存在,如果存在才删除。
drop database if exists dbname;
6)选择数据库
use dbname;
操作数据表
1)创建表
create table 表名(字段1 数据类型 [null|not null] [default] [auto_increment] [primary key] ,字段2 数据类型...)
not null:不为空
default:默认值
auto_increment:自增
primary key:主键
mysql> create table stu(
-> stuid int,
-> stuname varchar(10)
-> );
主键 的特点:不能重复,不能为空。
一个表只能有一个主键,主键可以由多个字段一起组成。
2)数据类型
int :整型
decimal(3,1):浮点型,整数三位,小数一位。
char(10)定长,剩余不回收,效率快。
varchar(10) 可变长度,剩余回收。
text:文本。
3)查看所有表
show tables;
4)显示创建表的SQL语句
show create table name \G;
5)显示表结构
describe 表名; 可以简写为 desc 表名;
6)删除表
drop table 表名;
drop table 表名1,表名2表名3;
7)创建复杂的表
mysql> create table stu(
-> stuid int not null primary key auto_increment,
-> stuname varchar(10) not null,
-> sex char(1) not null,
-> `add` varchar(50) default '地址不详',
-> score decimal(3,1)
-> );
数据的操作
1)插入数据
insert into 表名 (字段名[,字段名]..) values (值1[,值2])
insert into stu (stuid,stuname,sex,`add`) values (1,'李白','男','北京');
插入的字段可以和数据库的字段顺序不一致,但是值的顺序必须和插入字段的顺序一致。
插入的字段可以省略,如果插入的值的个数和顺序和数据库中的字段顺序一致。
自动增长的插入可以省略。
默认值的插入,用default代替。
2)修改数据
update 表名 set 字段1=值1,字段2=值2 where 条件
3)删除数据
delete from 表名 [where 条件];
delete from stu where stuname='李白';
4)查询数据
select 列名 from 表 [where条件] [order by 排序 [asc 升序|desc 降序]] [limit 限制 i,j (从i开始,长度为j)];
数据库中的逻辑运算
> 大于
<小于
=等于
>=大于等于
<=小于等于
<>不等于
and与
or 或
not非
聚合函数
max(字段名) 最大
min(字段名) 最小
sum(字段名) 和
avg(字段名) 平均值
count(*|id|字段名) 总数