mysql的学习记录
1 MySQL -h localhost -u UserName -p Password
-h不写,默认为localhost
注意:最好先MySQL -h localhost -u UserName -p 然后按enter建
2查看有哪些数据库
show databases;
3创建数据库
create database php;
(再通过show databases就可以查看了)
4.选中数据库
user php(可以不用加分号,)
5.查看多少表
show tables;
6.删除php数据库
drop database php;
7能否修改数据库的名字,答案是不可以的
8 create table class(stu int,name varchar(20),age int);
create table class(
id int primary key auto_increment,
name varchar(10),
age tinyint
) charset utf-8;
9删除表
drop table class
10修改表名字(注意数据库名字是不可以修改的)
rename table class to newclass;
11.查看所有的列信息
desc class;
12.当输错的的时候,可以用\c退出,也可以按enter建报错后退出
13 .插入表中
insert into msg(id,title,name,content)
values
(1,'初来乍到','张三','刚来能不能当老大');
报错,字符集问题导致的错误
解决方法:默认建表一般用utf8,而我们在windows窗口是gbk的,因此要声明字符集
只要在插入前面加 set names gbk就可以插入成功你了
注意:刻意多条一次性插入,只要在values后面多加几个,之间用逗号分隔
13修改表内容
update msg set id=2 ,content='偏要当老大' where name='李四';
14删除表内容
delete from msg where id=2;
15:表的列类型学习
mysql三大列类型
数值型
整型
Tinyint/smallint/mediumint/int/bigint
小数型
Float(D,M),decimal(D,M)
字符串型
char(M)
varchar(M)
Text文本类型
日期时间类型
date 日期
time 时间
datetime 时间类型
year 年类型
Tinyint 微小的列类型,1字节(8个位) 0->2^8-1=255
如果表示负数,可以用最高位来标志符号位
这时,表示范围是-128->127
smallint 2字节
mediumint 3字节
int 4字节
bigint 8字节
用tinyint做列子:
Tinyint 默认是有符号的存储
tinyint(m) unsigned zerofill
其中 m:宽度(在0填充即zerofill的时候才有意义),如果插入的值是1而且m是5,则显示的时候000001;
(注意:m影响的只是显示效果,没有超过指定的宽度,前面就用0填充,超过的话,就不起作用了)
unsigned:无符号类型(非负),影响存储范围
zerofill:0 填充,(默认无符号)
alter table class add age2 tinyint unsigned;
alter table class add age3 tinyint(1);
alter table class add age3 tinyint(5) unsigned zerofill;(其中unsigned 默认有,可省去)
alter table class add age4 notnull default 0;
16 字符串型
char:定长字符串,char(m),m表示宽度,可以容纳的字符数(当utf-8时,一个中文字也表示一个字符)
varchar 变长字符串 varchar(m),同上
text 文本串
区别在哪里?
a:char定长m, 实存i个字符,实占空间 M字符(当然i<=m)
varchar定长m,实存i个字符,实占空间 i字符+(1或2)字节
b: char(M) 0<=M<=255
varchar(M) utf-8时,0<=M<=22000 ,scii ,0<=M<=65536
c:char(m) 当实际存储内容不足m个是,则后面加空格补齐,但是取出来的时候,再把后面的空格去掉
char和varchar型的选择原则
a:空间利用率
四字成语表则用char(4),个人简介、微博 140字,则用varchar(140)
b: 速度
用户名用char,char的速度快,而且字符浪费不会很多
create table stu(name char(8) not null default '',
waihao varchar(10) not null default)charset utf8;
alter table stu add intro text not null default 'my info';报错:text、blog没有默认值的设置
alter table stu add intro text not null ;就对了
17日期类型(四种类型)
年->year
年-月-日->date
09:00:00 ->time
年-月-日 hh:mm:ss->datetime
年->year 1个字节 表示 1901-2155,
create table y(ya year(4));
如果输入2位:‘00-69 表示2000-2069 70->99表示1970-1999 最简单的是,4位全部输入
年-月-日->date 典型 1992-08-12
范围:'1000-010-01'->'9999-12-31'
hh:mm:ss ->time
范围:'-838:59:59'->'838:59:59'
年-月-日 hh:mm:ss->datetime
范围:'1000-01-01 00:00:00'->'9999-12-31 23:59:59'
注意:在开发中,很少用日期时间类型来表示一个需要精确到秒的列,
原因是:虽然日期时间类型能精确到秒,而且方便查看,但是计算不方便
但是都用时间戳来表示精确到秒
时间戳 :是1970-01-01 00:00:00 到当前的秒数
一般存注册时间,商品发布时间等,并不是用datetime存储,而是用时间戳,因为datetime计算不方便
而且时间戳的表示可以方便格式的选择显示
create table t2(
gender tinyint,--可以填很多值,而且只有一个字节
gender enum('男','女') --枚举类型,缺点只能填男或者女,字节比tinyint用的多,所以建议用tinyint,
)charset utf8;
18:建表练习
姓名:char(3)
年龄:tinyint unsigned
email:varchar(30)
tel:char(11)
intro(简介):varchar(1000)
alary:decimal(7,2)
入学日期:date类型
create table stu(
id int primary key auto_increment,
name char(3) not null default '',
age tinyint unsigned not null default 0,
email varchar(30) not null default '',
tel char(11) not null default '',
salary decimal(7,2) not null default '1800.68',
riqi date not null default '2012-03-13'
)charset utf8;
19 select 5种子句介绍
where 条件查询
group by 分组
having 刷选
order by 排序
limit 限制结果条数
mysql的学习记录的更多相关文章
- 从零开始学习Mysql的学习记录
2015/06/18 16:23更新,由于QQ邮件的图片链接失效了,请在云笔记链接查看 http://note.youdao.com/share/?id=f0b2ed30a3fc8e57c381e3d ...
- mysql/mariadb学习记录——limit
在mysql/mariadb 中可以用limit来限制查询的条数.例子如下: 1.limit后加一个参数 limit n: //选中查询所有结果中的前两条记录并返回 mysql> ; +---- ...
- MySQL索引学习记录
参考资料: http://blog.csdn.net/v_july_v/article/details/6530142http://blog.codinglabs.org/articles/theor ...
- MySQL巩固学习记录(一)
mysql下载安装 一.采用图形化界面安装 (初期只安装server服务端就可以了,别的不多赘述) 二.采用压缩版安装 1.将文件解压缩到自己想要的路径 2. 添加环境变量,即mysql的bin目录 ...
- MySQL语句学习记录
注意,命令行下,每条语句最后都需要加分号. 1.显示所有数据库 SHOW DATABASES 2.使用某数据库 如mysql数据库 use mysql (sql语句不区分大小写) 3.显示所有表 ...
- MySQL的学习记录(3.31更新)
MySQL的学习记录(3.31更新) 0x00 安装及配置 Windows 1.首先官网下载(https://dev.mysql.com/downloads/mysql/) ps:不想官网下载的可以到 ...
- mysql/mariadb学习记录——查询3(AVG、SUM、COUNT)函数
AVG() 求平均数函数: //求emp表中的sal属性的平均值 mysql> select avg(sal) as salAverage from emp; +-------------+ | ...
- mysql/mariadb学习记录——查询2
Alias——使用一个列名别名AS 关键字: mysql> select sno as studentId,sname as studentName from student; +------- ...
- mysql/mariadb学习记录——查询
连接查询:同时设计两个及以上的表的查询 连接条件或连接谓词:用来连接两个表的条件一般格式: [<表名1>]<列名1> <比较运算符> [<表名2>]&l ...
随机推荐
- jQuery EasyUI 数据网格 - 启用行内编辑(转自http://www.runoob.com/jeasyui/jeasyui-datagrid-datagrid12.html)
可编辑的功能是最近添加到数据网格(datagrid)的.它可以使用户添加一个新行到数据网格(datagrid).用户也可以更新一个或多个行.本教程向您展示如何创建一个数据网格(datagrid)和内联 ...
- AngularJS(12)-BootStrap集成
AngularJS 的首选样式表是 Bootstrap, Bootstrap 是目前最受欢迎的前端框架. <!DOCTYPE html> <html lang="en&qu ...
- 配置Windows 2008 R2 64位 Odoo 8.0/9.0 源码开发调试环境
安装过程中,需要互联网连接下载python依赖库: 1.安装: Windows Server 2008 R2 x64标准版 2.安装: Python 2.7.10 amd64 到C:\Python27 ...
- hdu 1222 狼和兔子
Description There is a hill with n holes around. The holes are signed from 0 to n-1. A rabbit must h ...
- oracle-11g-配置dataguard
1.环境信息:系统:oracle-linux 5.7 数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit P ...
- return *this和return this的区别
别跟我说, return *this返回当前对象, return this返回当前对象的地址(指向当前对象的指针). 正确答案为:return *this返回的是当前对象的克隆(当然, 这里仅考虑返回 ...
- ubuntu12.04samba服务器配置,亲测可用(转)
系统平台:VMware Workstation9.0 + ubuntu12.04 首先要解决windows和linux网络连接问题:在VMware Workstation9.0 “设置” 选项中,设置 ...
- ETL Pentaho Data Integration (Kettle) 插入/更新 问题 etl
Pentaho Data Integration (Kettle) 使用此工具 按 索引 做 插入更新操作时,也可能报 索引重复 的错误, 解决方法: 匹配的索引字段可能有null值,会导致此错误 ...
- Codeforces Round #303 (Div. 2) E. Paths and Trees 最短路+贪心
题目链接: 题目 E. Paths and Trees time limit per test 3 seconds memory limit per test 256 megabytes inputs ...
- js--eval函数
前言: js的eval函数很牛叉,用了几次--不过都没有记录.试想:如果没有EXT.JQery,怎样将json字符串转换为对象呢? 示例: 定义2个字符串变量s1.s2.其中s1表示一个对象:s2表示 ...