• 文件库,文件表,记录的增删改查


    客户端忘记密码,修改密码操作:

    创建密码 mysqladmin -uroot -p password”123” 

    修改密码 mysqladmin -uroot -p”123” password”123456”

    p为原密码,password为修改的密码

    忘记密码后要先关闭mysql,   net stop mysql

    如果是拒绝就以管理员的方式启动

    然后输入 mysqld --skip-grant-tables跳过授权表

    然后就可以登入直接跳过密码的输入,直接不需要密码可以登入

    输入:update mysql.user set password=password(“yf123”) where user=”root” and host=”localhost”;

    就能修改成功

    最后再执行flush privileges; 刷新权限信息

    查看服务器ID:tasklist |findstr mysql

    杀死服务器ID:taskkill /F /PID 10936 如果无法访问就以管理员的方式登入CMD

    杀死之后重新启动服务net start mysql

    文件夹:

    :

    Create database db1 charset utf8;#db1是库名,utf8中间不要横杠的方式表明字符编码设置

    :

    Drop database db1;

    :

    Alter database db1 charset gbk;#改的是库里面的字符编码设置

    :

    Show databases;

    Show create database db1;

    文件:

    切换文件夹

    Use db1;#db1为文件夹名

    Select database();查看当前所在的库

    :

    Create table t1(id int,name char);

    Create table db1.t1(id int,name char);

    :

    Show tables;

    show create table t1;#查看自己创建的表

    describe t1;#查看表结构

    :

      alter table t1 add age int;#增加内容年龄

    Alter table t1 modify name char(15);#修改定长char

     alter table t1 change name NAME char(15);#修改表内名称

    删:

    alter table t1 drop age;#删除年龄

    drop table t1;#删除表

    文件内的第一行内容:记录

    :

    insert into t3(id,name) values

        (1,"yf"),

        (2,"fxc");

    :

    select id,name from t3;

    select * from t3;

    select *from t3 where id = 1;

    :

    update db1.t3 set name="yf_sg" where id=1;#改的名字属性必须对应ID

    :

    delete from db1.t3 where id=2;

    Id自动按照顺序写

    表格结果制作

    Create table t2(id int primary ket auto_increment,name char(15));#id int primary key表示id不能为空,且唯一

    添加

     insert into t2(name) values

         ("yf"),

         ("fxc"),

         ("hm");#因为ID自动顺序所以不用写ID

    删除不建议用delete 因为再次添加的时候会按照顺序继续下去

    truncate t2

    表详细操作:

    语法:

    create table 库名.表名(

    字段名1 类型[(宽度) 约束条件],

    字段名2 类型[(宽度) 约束条件],

    字段名3 类型[(宽度) 约束条件]

    );

    注意:

    1、最后一个字段之后不能加逗号

    2、在同一张表中,字段名是不能相同

    3、宽度和约束条件可选,字段名和类型是必须的

    约束条件:是在数据类型之外对字段附加的额外的限制

    数据类型:

    1、整型:默认是有符号的

    没符号1字符 8字节 最大数字255 2**8-1) 有符号-128~127 2**7-1

    用尝试的方式 insert into t3 values(-1)#显示的出表明有符号

    Create table t3(x tinyint);#创建有符号表

    Ps:修改sql_mode为严格模式,必须重启客户端才能生效

    Set global sql_mode=”struct_trans_tables”; #全局设置严格模式

    Select @@sql_mode#查看全局变量,NO开头的是非严格模式

    修改为无符号

    Create table t4(x tinyint unsigned); #创建无符号表

    强调:整形类型后面的宽度限制的根本不是存储宽度,限制的是显示宽度,不够长度空格在右侧自动填充,被超过的不变,是多少就是多少,没必要设置显示宽度,默认就是用11.

    Create table t3(id int(1));

    只有int类型是这样限制显示宽度,别的不是

    2、浮点型:

    Float(255,30)#总共位数255,小数点位30

    Double(255,30)

    Decimal(65,30)

    从上往下精度越来越高

    Create table t6(x float(255,30));

    Create table t7(x double(255,30));

    Create table t8(x decimal(65,30));

    3日期类型
    year 1999
    date 1999-11-11
    time 08:30:00
    datetime/timestamp 1999-11-11 08:30:00

    create table student(
        id int primary key auto_increment,
        name char(16),
        born_year year,
        birth date,
        class_time time,
        reg_time datetime
    );
    insert into student(name,born_year,birth,class_time,reg_time) values
    ('egon1',now(),now(),now(),now());

    insert into student(name,born_year,birth,class_time,reg_time) values
    ('egon1',2000,20001111,now(),now());

    insert into student(name,born_year,birth,class_time,reg_time) values
    ('egon1',2000,'2000-11-11',083000,now());

    insert into student(name,born_year,birth,class_time,reg_time) values
    ('egon1',2000,'2000-11-11',"08:30:00",20171111111111);

    insert into student(name,born_year,birth,class_time,reg_time) values
    ('egon1',2000,'2000-11-11',"08:30:00","2017-11-11 11:11:11");

    create table t11(x timestamp);

    时间不能为空,但是输入的insert into t2 values() 会自动提取当前时间,不用赋值,会自动填值

    速度比datetime快更方便
    create table t12(x datetime not null default now());

    单纯x datetime 是时间可以为空,但是可以增加附加条件达成想要的效果not null default now()获取当前时间


    4、字符类型

    文件服务器,专门存放视频之类的大文件,分担数据库压力,数据库中就存放链接地址
    # 注意:宽度指限制的是字符个数
    char:定长
        char(5)

    varchar:变长
        varchar(5)

    相同点:宽度指的都是最大存储的字符个数,超过了都无法正常存储
    不同点:
        char(5):
            'm'--->'m    '5个字符查询时自动去掉右边空格

        varchar(5)
            'm'--->'m'1个字符
    select char_length() from t3;#查看字符长度类型
    set global sql_mode="strict_trans_tables,PAD_CHAR_TO_FULL_LENGTH";#填充字符串不被自动删除

    注意:mysql在查询时针对where 字段="值    "会忽略掉右面的空格,即where 字段=""
    如果时like模糊匹配就不会忽略右面的空格了

    char(5)
    egon |axx  |lxx  |fm   |
    select * from t15 where name=”egon”;

    Select * from t15 where name like “e%”;#e开头所有的字符都行

    Select * from t15 where name like “e____”;#”e-----”e后面任意一个,要整体5”e”后面的下划线


    varchar(5)
    1bytes+egon|1bytes+axx|1bytes+lxx|1bytes+fm|

    varchar 除了真实数据外还要有长度1-2bytes+存内容,加个头,大部分内容都小于5,所以用varchar对内存更快






    # 宽度相关练习
    mysql> create table t13(x char(5));
    Query OK, 0 rows affected (0.20 sec)

    mysql> create table t14(x varchar(5));
    Query OK, 0 rows affected (0.27 sec)

    mysql>
    mysql>
    mysql> insert into t13 values('xxxxxx');
    ERROR 1406 (22001): Data too long for column 'x' at row 1
    mysql> insert into t14 values('xxxxxx');
    ERROR 1406 (22001): Data too long for column 'x' at row 1


    5、枚举与集合类型
    枚举enum('a','b','c'):多选一
    集合set('a','b','c'):多选多

    create table emp(
        name varchar(15),
        sex enum('male','female','unkown'),
        hobbies set('read','music','yinshi','play')
    );

    insert into emp values
    ('zhangming','xxx','xxxx');

    insert into emp values('zhangming','female','read,play');#多个内容逗号隔开就行
    Query OK, 1 row affected (0.03 sec)

    mysql> select * from emp; 
    +-----------+--------+-----------+
    | name      | sex    | hobbies   |
    +-----------+--------+-----------+
    | zhangming | female | read,play |
    +-----------+--------+-----------+
    1 row in set (0.00 sec)

  • 相关阅读:
    Android访问数据库(SQL Server 和 MySQL)
    Andriod开发环境搭建
    SQL 学习记录
    安装双系统 win7 + ubuntu 15.04
    SQL资料
    电脑使用
    python_L7
    ONE
    网页性能优化
    js的继承
  • 原文地址:https://www.cnblogs.com/yf18767106368/p/9343509.html
Copyright © 2020-2023  润新知