邢栋博客

邢栋博客,Action博客,记录工作和生活中的点点滴滴

mysql 城市与省份的关系sql语句
city:
id city provinceid
province:
id province

(1) 写一条sql语句关系两个表,实现:显示城市的基本信息。?
(2) 显示字段:城市id ,城市名, 所属省份 。
如:
Id(城市id) cityname(城市名) privence(所属省份)
。。。。。。。。。
。。。。。。。。。
(2)如果要统计每个省份有多少个城市,请用group by 查询出来。?
显示字段:省份id ,省份名,包含多少个城市。
ANSWER:
1 select city.id as city_id,city,province from city,province where city.provinceid=province.id;

2.select province.id as province_id,province,count(*) as num  from city,province where province.id=city.provinceid group by province.id;
int、bigint、smallint 和 tinyint范围

bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据,存储大小为 8 个字节

int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据,存储大小为 4 个字节。

smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据,存储大小为 2 个字节。

tinyint:从0到255的整数数据,存储大小为 1 字节。
varchar和char 类型区别

varchar类型用于存储可变长字符串

1.需要使用1或2个额外字节记录字符串的长度。如果列的最大长度小于小于或者等于255字节,则只使用1个字节表示,否则使用2两个字节。

2.节省了存储空间,所以对性能有帮助。
3.5.0以上版本,mysql存储和检索时会保留末尾的空格,4.1之前的版本都会把末尾的空格剔除。
4.字符串列的最大长度比平均长度大很多,列的更新少,所以碎片不是问题。使用了像utf-8这样复杂的字符集,每个字符都使用不同的字节数进行存储。

char 类型是定长的,适合存储很短的字符串,或者所有值都接近同一个长度。

char非常适合存储密码的md5值,因为这是一个定长的。对于经常变更的数据,char也比varchar更好,因为定长的char类型不容易产生碎片,保存的时候去掉字符串末尾的空格。


mysql增加删除索引以及修改表字段
增加索引
mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
例子: mysql> alter table tablename add index newname (name); 

加主关键字的索引 
mysql> alter table 表名 add primary key (字段名); 
例子: mysql> alter table tablename  add primary key(id); 

加唯一限制条件的索引 
mysql> alter table 表名 add unique 索引名 (字段名); 
例子: mysql> alter table tablename add unique newname (name); 

mysql alter语法运用:查看某个表的索引 
mysql> show index from 表名;
例子: mysql> show index from tablename;

删除某个索引 
mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table tablename drop index newname;


1.增加字段
alter table tablename add name varchar(20); //增加一个字段,默认为空
alter table tablename add name varchar(20) not null; //增加一个字段,不为空
2.删除字段
alter table tablename drop name;   //删除一个字段
3.修改字段
alter table tablename modify name VARCHAR(60);  //修改一个字段的类型
alter table tablename change phone telphone int;  //修改一个字段的名称,此时一定要重新指定该字段的类型

WampServer修改MySQL密码

WampServer安装好后,mysql密码是为空的,下面修改密码方法:

update user set password=password('新密码') where user='root';

FLUSH PRIVILEGES;

 

mysql学生数据表关于性别、出生日期等的简单读取

 

数据库名:xingdong,字段name,sex(1男,0女),pass,date

select if(sex,'男','女') from xingdong;  列出数据表xingdong中的性别

select if(sex,'男','女')as stusex from xingdong;列出数据表xingdong中的性别,字段改为stusex

select concat("姓名",name,"密码",pass,"性别",sex) from xingdong;列出数据表中的信息为:姓名邢栋密码1314性别男

select concat("姓名",name,"密码",pass,"性别",if(sex,'男','女')) as stupeople from xingdong;列出数据表中的信息为:姓名邢栋密码1314性别男,字段改为stupeople

select name,birth from xingdong where birth>=(select birth from xingdong order by birth desc limit 1); 列出年龄最小的人的名字和出生日期,包括重复。

select * from xingdong where date=(select max(date) from xingdong);列出年龄最小的人的相关信息,包括重复。

select distinct year(date)as "学生出生年份" from xingdong; 列出数据表中的出生年份,去掉重复

select * from xingdong group by date; 列出数据表中所有的信息,去掉日期重复的

mysql在cmd下的一些常用操作命令

cmd下的一些mysql常用命令


net stop mysql 停止mysql服务
net start mysql 开启mysql 服务
mysqladmin -uroot -p shutdown 停止mysql服务

F7 显示最近输入的命令

连接mysql (简写)
用户名:mysql -uroot -p   或者mysql --user root --password
用户名+密码:mysql -uroot -p1314

用户名+ip地址:mysql -uroot -h192.168.1.161 -p 
用户名+ip地址+密码:mysql -uroot -h192.168.1.161 -p1314

select version(); 显示mysql数据库版本。
select database();显示正在使用的数据库。
desc ceshi; 显示表结构。

alter table xingdong add birth date; 增加字段

创建一个用户对某个数据库单独操作 (xingdong数据库名称,action用户名称,1314用户密码)

grant all on xingdong.* to "action"@"localhost" identified by "1314"

数据库备份(xingdong数据库名称,xingdong20101117.sql备份后的文件名称)
mysqldump -uroot -p xingdong>d:/xingdong20101117.sql(最后没有冒号)

数据库还原(先创建)
mysql -uroot -p xingdong < d:/xingdong20101117.sql
source d:/xingdong1117.sql;

show character set; 显示所有字符集;
show collation; 显示字符集校对规则。

show variables like "%collation%";
show variables like "%character%";

set character_set_results=utf8;


优惠券
最新微语