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 限制结果条数

时间: 2024-10-16 16:53:58

mysql的学习记录的相关文章

我的mysql的学习记录

---恢复内容开始--- MySQL 概念:是表的集合,是一个大的分类 安装 安装文件下载路径:(老宁博客) http://www.cnblogs.com/SmartNing/p/5178616.html 1.配置视频 第一步:下载绿色软件包,不用安装,放在指定目录下(假如放在C盘的server目录下). 1.把mysql-5.5.22.rar解压到C盘server目录,如果要解压到其它目录则需要修改(修改ini文件) C:\server\mysql-5.5.22\my.ini中的 basedi

从零开始学习Mysql的学习记录

以前曾经学习过SQL server 2003.那是09年的时候,最近这几天比较闲,遂学习Mysql的相关知识,以下是一些学习截屏,曾经学习过的知识,忽然间又从脑海中闪现了.大部分都是差不多的. . Mysql执行流程 如果有的图片没显示出来的话,云笔记备用链接:http://note.youdao.com/share/?id=f0b2ed30a3fc8e57c381e3d2ef9cd68e&type=note

mysql使用学习记录

sudo /etc/init.d/mysql start启动mysql netstat -lntup|grep 3306查看端口3306 grant all privileges on *.* to [email protected]'localhost' identified by 'xxx' with grant option;创建新的用户并赋予所有权限xxx密码 flush privileges;刷新权限 mysql -u root -pxxx登录mysql 查看mysql数据库里操作命令

mysql/mariadb学习记录——查询2

Alias--使用一个列名别名AS 关键字: mysql> select sno as studentId,sname as studentName from student; +-----------+-------------+ | studentId | studentName | +-----------+-------------+ | 12001 | bgg | | 96001 | 刘军 | | 95002 | 刘晨 | | 94001 | 山寨 | | 95005 | 张三 | |

mysql/mariadb学习记录——查询3

AVG() 求平均数函数: //求emp表中的sal属性的平均值 mysql> select avg(sal) as salAverage from emp; +-------------+ | salAverage | +-------------+ | 2073.214286 | +-------------+ 1 row in set (0.11 sec) //emp表数据 mysql> select * from emp; +-------+--------+-----------+-

mysql/mariadb学习记录——连接查询(JOIN)

//本文使用的数据表格//persons表中id_p为主键//orders表中id_o为主键,id_p为外键参考persons表中的id_p mysql> select * from persons;select * from orders; +------+----------+-----------+----------------+----------+ | id_p | lastname | firstname | address | city | +------+----------+

12 | 为什么我的MySQL会“抖”一下? 学习记录

<MySQL实战45讲>12 | 为什么我的MySQL会“抖”一下? 学习记录 http://naotu.baidu.com/file/15aa54cab2fa882c6a2a1dd52e576659?token=4cb1b7c62efae6c4 原文地址:https://www.cnblogs.com/jtfr/p/11300131.html

mysql数据库学习目录

前面的话 对于前端工程师来说,数据库并不是主要技能点,但是基本的增删改查操作还是需要了解的.小火柴将mysql数据库的学习记录整理如下 目录  前端学数据库之基础操作 前端学数据库之数据类型 前端学数据库之数据表操作 前端学数据库之记录操作 前端学数据库之中文乱码 前端学数据库之子查询 前端学数据库之多表操作 前端学数据库之函数 前端学数据库之存储

MySQl Study学习之--MySQl二进制日志管理

MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log):   a.它包含的内容及作用如下:    包含了所有更新了数据或者已经潜在更新了数据(比如没有匹配任何行的一个DELETE)    包含关于每个更新数据库(DML)的语句的执行时间信息    不包含没有修改任何数据的语句,如果需要启用该选项,需要开启通用日志功能    主要目的是尽可能的将数据库恢复到数据库故障点,因为二进制日志包含备份后进行的所有更新    用于在主复制服务器上记录所有将发送