mysql数据类型
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
数值类型
MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。
作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性,将在后面描述。
mysql数据库中的权限
创建数据库
登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下
CREATE DATABASE 数据库名;
使用 mysqladmin 创建数据库
使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库。所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库。以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB:
mysqladmin -u root -p create RUNOOB
删除数据库
使用普通用户登陆 MySQL 服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库,所以我们这边使用 root 用户登录,root 用户拥有最高权限。在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。
drop 命令删除数据库
drop 命令格式:
drop database 数据库名;
删除名为 RUNOOB 的数据库:
drop database RUNOOB;
修改表设计函数
修改表设计,使用alter,修改表内容update
alter table student change name username varchar(20);
修改字段名称change, username 旧的表名,user修改后的名字
alter table student change username user char(20);
修改表名称
alter table student rename stu;
修改字段类型
c_name字段数据类型改为 varchar(70)
alter table customers modify column c_name varchar(70)
添加字段
alter table student add sex char(3);
插入字段
将school放到sex字段后面
alter table student modify school char(50) after sex;
删除字段
alter table student drop sex;
数据库的基本命令
查看所有的数据库
show databases;
创建数据库
create database A;
查看当前数据库下的所有表
show tables;
查询表设计
desc student;
删除表中的数据,表仍然存在
delete from student;
删除表,表不存在
drop table student;
删除数据库
drop database 1708a;
创建表
auto_increment:设置自动递增(只有整数类型可以设置),primary key创建主键,代表唯一标识,默认not null unique(唯一约束)
create table student(
id int(10) auto_increment primary key,
name varchar(20) not null,
address varchar(30),
age int(5) default 16);
Mysql增删改查常用命令
添加
根据字段添加
insert into student(id,name,address) values(13,'赵飞燕','八');
不根据字段
insert into student values(14,'王小五','清华',25);
查询
查询表的所有数据 *是所有的字段
select * from student;
只查询姓名和地址
select name,address from student;
根据姓名和年龄查询,and:并列 两者之间都为true才是true
select id,name,age from student where name='王小五' and age = 25;
根据姓名或者年龄进行查询,or或者两者之间只有有一个是true 那么就为true
select id,name,age from student where name='王小五' or age = 20;
查询包含的学生信息,in(包含的内容)
select * from student where id in(13,1,15,17);
查询id不包含1,13,17,15的学生信息
select * from student where id not in(13,1,15,17);
查询年龄在20-25之间(between包含)
select name,age from student where age between 20 and 25;
查询id为偶数的学生
select * from student where id %2=0;
查询和小李年龄相同的学生信息,不等于的两种写法 <> !=
select * from student where age = (select age from student where name = '小李') and name <>'小李';
select * from student where age = (select age from student where name = '小李') and name !='小李';
模糊查询
查询姓李的学生姓名 %代表多个字符
select name from student where name like '%李%';