zoukankan      html  css  js  c++  java
  • mysql对库,表及记录的增删改查

     破解密码

    #1、关闭mysql
    net stop mysql
    mysql还在运行时需要输入命令关闭,也可以手动去服务关闭

    #2、重新启动
    mysqld --skip-grant-tables
    跳过权限


    #3
    mysql -uroot -p 直接登陆

    update mysql.user set password=password("egon123") where user="root" and host="localhost";
    flush privileges;涉及到权限就要刷一下

    修改密码(已经有密码的情况)
    mysqladmin -uroot -p"123" password "456"

    #4、关闭mysql,正常启动
    net start mysql

    数据库,表,记录的增删改查

    文件夹:库

    create database db1 charset utf8;


    drop database db1;

    alter database db1 charset gbk;

    show databases;
    show create database db1;

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

    切换文件夹
    use db1;
    select database(); 查看当前所在的库



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


    drop table t1;

    alter table t1 add age int;
    alter table t1 modify name char(15);
    alter table t1 change name NAME char(15);
    alter table t1 drop age;


    show tables;
    show create table t1;
    desc t1;

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

    insert into t1(id,name) values
    (1,'egon'),
    (2,'lxx'),
    (3,'alex');


    delete from db1.t1 where id >= 2;

    create table t2(id int primary key auto_increment,name char(15));
    insert into t2(name) values
    ('egon'),
    ('lxx'),
    ('wxx'),
    ('axx');

    清空表应该使用:
    truncate t2;
    不能使用delete清空表,delete是用来删除部分内容时用的。delete清空表往里添加内容id会从删除前的位置继续,truncate不会出现这种情况。

    update db1.t1 set name='lxx_dsb' where id=2;

    select id from db1.t1;
    select id,name from t1;
    select name,id from t1;
    select * from t1;
    select * from t1 where id >= 2;

    一、创建表的完整语法
    #语法:
    create table 库名.表名(
    字段名1 类型[(宽度) 约束条件],
    字段名2 类型[(宽度) 约束条件],
    字段名3 类型[(宽度) 约束条件]
    );
    约束条件:是在数据类型之外对字段附加的额外的限制

    #注意:
    1、最后一个字段之后不能加逗号
    2. 在同一张表中,字段名是不能相同
    3. 宽度和约束条件可选,字段名和类型是必须的

    二、数据类型
    #1、整型:默认是有符号的
    create table t3(x tinyint);

    ps:修改sql_mode为严格模式,必须重启客户端才能生效
    set global sql_mode="strict_trans_tables";

    查看是否为严格模式
    select @@sql_mode;

    create table t4(x tinyint unsigned); unsigned变为无符号,范围为0-255,原来是-128-127

    # 强调:整型类型后面的宽度限制的根本不是存储宽度,限制的是显示宽度
    create table t5(id int(1));
    create table t6(id int(5));

    #2、浮点型:
    float(255,30)
    double(255,30)
    decimal(65,30)

    create table t8(x float(255,30));
    create table t9(x double(255,30));
    create table t10(x decimal(65,30));

    insert into t8 values(1.111111111111111111111111111111);
    insert into t9 values(1.111111111111111111111111111111);
    insert into t10 values(1.111111111111111111111111111111);


    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);
    create table t12(x datetime not null default now());


    4、字符类型
    # 注意:宽度指限制的是字符个数
    char:定长
    char(5)

    varchar:变长
    varchar(5)

    相同点:宽度指的都是最大存储的字符个数,超过了都无法正常存储
    不同点:
    char(5):
    'm'--->'m '5个字符

    varchar(5)
    'm'--->'m'1个字符

    set global sql_mode="strict_trans_tables,PAD_CHAR_TO_FULL_LENGTH";

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

    char(5)
    egon |axx |lxx |fm |

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


    # 宽度相关练习
    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');


    mysql> 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)

  • 相关阅读:
    纯JS实现俄罗斯方块,打造属于你的游戏帝国
    Java 集合框架
    项目(1-2)ES32获取mpu9250传入数据库
    项目(1-1)ES32获取mpu9250数据网页交互显示
    开发(三)ESP32 硬件配置
    开发(二) ardunio批量固件上传地址
    项目(1-1)人脸识别
    海康相机开发(1) SDK安装和开发
    ARDUNIO IMU processing姿态数据可视化
    ESP8266 tcp透传AP+STA
  • 原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9338500.html
Copyright © 2011-2022 走看看