MySQL入门篇(一)----navicat和命令行的使用

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;



猜你喜欢

转载自blog.51cto.com/14510351/2494680
今日推荐