Mysql命令(命令行的实现)
查看数据库: show databases;
创建数据库:create database test01;
选择数据:use test01;
查看数据库表: show tables;
创建数据库表:create table cat(name varchar(20), age int);
查看表的结构: desc cat;
插入数据: insert into cat values(‘tomcat‘,3);
查询数据;select name,age from cat;
插入数据(不按字段顺序):insert into cat(age,name) value(5,’abc’);
插入数据(按字段,以后插入数据都是按这种写法):insert into cat(name) values(‘ccc‘)
插入数据(插入多条数据): insert into cat(name) values(‘bbb’),(‘aaa’),(‘ddd’);
运行结果:
更新数据:update cat set age=4(age这一列全部改为4)
运行结果:
update cat set age=5 where name=’tom’;
运行结果
删除数据(必须加where条件,否则会删除所有数据):delete from cat where name=‘ddd’;
运行结果
删除表:drop table cat;
insert/update/delete 返回受影响的行数
delect 返回查询的结果
delete 删除数据
drop 删除表
郑州哪家不孕不育医院好:http://www.zztjby.com/
Navicat可视化工具的使用
创建连接成功
双击激活数据库
郑州试管婴儿医院:http://www.changhong120.com/
在first上右击选择新建数据库,
编码集:把要显示的内容,通过编码表示出来,中国开发的编码集gbk2312内容比较少
例如,可以把自己写的中文通过编码集gbk2312显示出来,unicode所有国家的编码集的集合,内容比较多。Mysq’l存中文用的是utf8。中文的编码集还有utf-8。Mysql默认的编码集是拉丁文。时刻谨记ctrl+s保存
创建表的时候如果不指定编码集,就需要一个一个字段去设置编码集。
创建数据库的时候指定编码集,在创建表的时候就不需要指定编码集了
郑州人工授精医院:http://rgsj.zzfkyy120.com/
数据库表的字段类型
存整数: tinyint(比int类型小 占1字节) smallint(比int类型小 占2字节) mediumint 占3 字节 int 4 bigint 8比int大
不同的数据类型---存储数据的范围不同—在内存中占用的空间不同—合理的利用内存空间
一个字节8位
存小数 : float/double
存字符串: varchar(存变长的字符串)/char(存定长的字符串)
例如:手机号/身份证号长度固定,所以就可以用char类型进行存储;存姓名可能有2/3/4/5个字,属于变长,所以用varchar进行存储。
两者区别:
char类型例如给它分配了20个字符空间,只用了3个长度,剩下的会被空格进行填充。 浪费了存储空间,但是不需要计算。
varchar类型例如给它分配了20个长度空间,实际占用3个长度,会首先计算数据长度。节省了存储空间,但是需要计算。
存日期: date年月日
datetime年月日时分秒
year年份
存大对象:blob,例如存图片,视频,基本不会用到,一般都是存储路径
longtext 存储文本类型,存储的文本比较多
#同时执行多条sql语句,必须加分号
insert into cat(name,age) values('tom',4),("abc",5);
select name,age from cat;
#无法对表中的数据进行唯一的指定
select name,age from cat where name='tom' and age=4;
#--一个约束,唯一标识某条数据
#--1 主键 10完 并不知道哪个用来了 一个表中只能有一个主键
#--在一个表中 两条数据中的两个字段值不同时(id+name)重复
#---联合主键---字段平级 表级约束//////// 直接卸载字段id int 列级约束
#---不是主键,但是值唯一,通过unique指定为唯一
#-- 主键/唯一/非空not null
#id为主键,不能这样写
insert into cat1(id,name,age) values9(4,'tom',5);
#需要这样写
insert into cat1(name,age) values9('tom',5);
#创建表,约束方法一
create table cat1(
id int primary key auto_increment,#主键并且自增
name varchar(20),
age int
)engine=INNODB default charset=utf8;
#约束方法二,避免两个字段重复,联合主键
create table cat2(
id int,
name varchar(20),
age int ,
primary key(id,name)#联合主键
)engine=INNODB default charset=utf8;
#约束第三种写法
create table cat3(
id int primary key auto_increment,
name varchar(20) unique,
age int
)engine=INNODB default charset=utf8;
insert into cat(name) value('tom');
#给age设定默认值
create table cat4(
id int primary key auto_increment,#主键,自增
name varchar(20) unique,#值唯一
age int not null default 4
)engine=INNODB default charset=utf8;
#插入之后,age默认为4
insert into cat(name,age) value('tom');
#插入年月日时分秒
insert into cat1(birthday) values('1999-3-9 14:00:00');
#操作
select name,age,id,birthday from cat1;
#全表查询
select * from cat1;
#查询指定行
select * from cat1 where id=1;
#数据库 运算符
#表中所有年龄+3 算术运算符 + — * / % ++ -- #在mysql中不能用 += -= %等这些符号
update cat1 set age=age+3;
#--关系运算符 > >= < <= = != (<>不等于)
#大于7
select * from cat1 where age>=7;
#不等7 有两种写法
select * from cat1 where age<>7;
select * from cat1 where age!=7;
#查询age=7并且name是tom的猫,涉及多个条件,要用到逻辑运算符and or not
select * from cat1 where age=7 and name='tom';
#或者关系,只要满足其中一个条件就可以
select * from cat1 where age=7 or name='tom';
#取反,两种写法
select * from cat1 where !(age=7 or name='tom');
select * from cat1 where not (age=7 or name='tom');
#mysql 中不区分大小写
#查名字为null(控制)的行
select * from cat1 where name is null;
#查询一定范围内的年龄between and [5,7],包含边界
select * from cat1 where age between 5 and 7;
#查询年份,从datetime中提取出来年份
select year(birthday) from cat1;