常见数据类型:
4.1 double浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
4.2 char固定长度字符串类型;char(10)'abc '
4.3 varchar可变长度字符串类型;varchar(10)'abc'
4.4 text字符串类型4.5 blob二进制类型
4.6 date提起类型,格式为:yyyy-MM-dd;
4.7 time时间类型,格式为:hh:mm:ss;
4.8 datetime日期时间类型,格式为:yyyy-MM-dd hh:mm:ss5. 在MySQL中,字符串类型和日期类型都要用单引号括起来。'Myname' '2018-01-01'。
创建数据库create database 数据库名 character set utf8;或者create database 数据库名 charset=utf8;
使用(切换)数据库use 数据库名
建表命令;
CREATE TABLE 表名(
列名1 列名类型 [约束],
列名2 列名类型 [约束],
.....
列名N 类的类型 [约束]
)
定义学生表:
id name age email
CREATE TABLE students(
id bigint,
name varchar(20),
email varchar(20),
age int
);
添加一列(本来我已经有4个字段,又想添加一个新的字段)
ALTER TABLE 表名 ADD 列名 数据类型;
查看表的字段信息
desc 表名。
修改一个表的字段类型
ALTER TABLE 表名 MODIFY 字段名 数据类型;
删除一列
添加一列ALTER TABLE students ADD nums varchar(10);
删除一列ALTER TABLE students drop nums;
修改表名
RENAME TABLE 原始表名 TO 要修改的表名;
查看表的创建细节
SHOW CREATE TABLE 表名;
修改表的字符集gbk
ALTER TABLE students character set gbk;
修改表的列名
ALTER TABLE students change name newname varchar(20);
删除表
DROP TABLE 表名;
查询表中的所有数据
SELETE * FROM 表名;
插入操作:
INSERT INTO 表名 ( 列名1,列名2 ) VALUES (列值1, 列值2...);
- 添加多条数据(批量插入):
VALUES后面以逗号隔开
INSERT INTO 表名(列名1,列名2....) VALUES(列值1,列值2),(列值1,列值2)....;
更新操作
UPDATE 表名 SET 列名1=列值1, 列名2=列值2... WHERE 列名=值
把所有学生的分数改为90
UPDATE students SET score=90;
把姓名为zs的学生分数修改为60
UPDATE students SET score=60 WHERE name='zs';
把姓名为lisi的年龄修改为20和分数修改为70
UPDATE students SET age=30,score=70 WHERE name='lisi';
把wangwu的年龄在原来基础上+1岁
UPDATE students SET age=age+1 WHERE name='wangwu'
修改数据库密码步骤:
mysqladmin -u root -p password 123456
删除操作# 如果不加过滤条件就是删除所有数据
DELETE FROM 表名 [WHERE 列名=值]
删除所有数据
TRUNCATE TABLE 表名;
查询所有列
SELECT * FROM 表名;
查询指定的列
SELECT 列名1,列名2 FROM 表名;
条件查询
- BETWEEN...AND; 值在什么范围
- IN(set);
- IS NULL; (为空)
- IS NOT NULL; (不为空)
- AND; 与
- OR; 或
- NOT; 非
查询性别为男,并且年龄为20的学生记录# 添加性别字段
ALTER table students add gender varchar(2);
查询
SELECT * FROM students WHERE gender='男' AND age=20;
查询学号为1001 或者 名为 zs 的记录
SELECT * FROM students WHERE id=1001 OR name='zs';
查询学号为1001 , 1002 ,1003的记录
SELECT * FROM students WHERE id = 1001 OR id = 1002 OR id = 1003;
SELECT * FROM students WHERE id in (1001,1002,1003);
查询年龄为null的记录
SELECT * FROM students WHERE age IS NULL;
查询年龄在18-20之间的学生记录
SELECT * FROM students WHERE age>= 18 AND age<=20;
SELECT * FROM students WHERE age BETWEEN 18 AND 20;
查询性别非男的学生记录
SELECT * FROM students WHERE gender != '男';
查询姓名不为null的学生记录
SELECT * FROM students WHERE name IS NOT NULL;
模糊查询
- 根据指定的关键字进行查询
- 使用LIKE关键字后跟通配符
- 通配符
- _:任意一个字母
- %:任意0~n个字母
- 使用
查询姓名由5个字母构成的学生记录可以事先自己添加好各种数据# 5个字母就是5个下划线
SELECT * FROM students WHERE name LIKE '_____';
查询姓名由5个字母构成,并且第5个字母为's'的学生记录
SELECT * FROM students WHERE name LIKE '____s';
查询姓名以'm'开头的学生记录
SELECT * FROM students WHERE name LIKE 'm%';
查询姓名中第二个字母为'u'的学生记录
SELECT * FROM students WHERE name LIKE '_u%';
查询姓名中包含's'字母的学生记录SELECT * FROM students WHERE name LIKE '%s%';
mysql -uroot -p;
进入数据库
SHOW DATABASES;
查看库
DROP DATABASE 库名 ;
删除数据库
USE 数据库;
使用(切换)数据库
SELECT * FROM 表名;
查看表里面的内容
SHOW CREATE TABLE 表名;
查看表的创建细节
CREATE TABLE 表名;
往表里添加内容
DESC 表名;
查看表的结构
CREATE TABLE 表名(
列名1 列名类型 [约束],
列名2 列名类型 [约束],
.....
列名N 类的类型 [约束]
);
建立表格的框架
UPDATE 表名 SET 列名1=列值1, 列名2=列值2... WHERE 列名=值
更新并修改指定条件
SELECT * FROM students WHERE name LIKE 'm%';
查询姓名以'm'开头的学生记录
查询性别为男,并且年龄为20的学生记录# 添加性别字段
ALTER table students add gender varchar(2);
查询
SELECT * FROM students WHERE gender='男' AND age=20;