• Mysql学习(二)


    • Mysql查询当前时间
    mysql> select curdate();
    +------------+
    | curdate()  |
    +------------+
    | 2020-04-19 |
    +------------+
    1 row in set (0.02 sec)
    
    mysql> select now();
    +---------------------+
    | now()               |
    +---------------------+
    | 2020-04-19 17:44:34 |
    +---------------------+
    1 row in set (0.00 sec)
    
    mysql> select DATE_FORMAT(now(),'%Y-%m-%d %H:%i:%s') from dual;
    +----------------------------------------+
    | DATE_FORMAT(now(),'%Y-%m-%d %H:%i:%s') |
    +----------------------------------------+
    | 2020-04-19 17:38:43                    |
    +----------------------------------------+
    1 row in set (0.00 sec)
    
    下列修饰符可以被用在format字符串中:
    
    %M 月名字(January……December)
    %W 星期名字(Sunday……Saturday)
    %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
    %Y 年, 数字, 4%y 年, 数字, 2%a 缩写的星期名字(Sun……Sat)
    %d 月份中的天数, 数字(00……31)
    %e 月份中的天数, 数字(0……31)
    %m 月, 数字(01……12)
    %c 月, 数字(1……12)
    %b 缩写的月份名字(Jan……Dec)
    %j 一年中的天数(001……366)
    %H 小时(00……23)
    %k 小时(0……23)
    %h 小时(01……12)
    %I 小时(01……12)
    %l 小时(1……12)
    %i 分钟, 数字(00……59)
    %r 时间,12 小时(hh:mm:ss [AP]M)
    %T 时间,24 小时(hh:mm:ss)
    %S 秒(00……59)
    %s 秒(00……59)
    %p AM或PM
    %w 一个星期中的天数(0=Sunday ……6=Saturday )
    %U 星期(0……52), 这里星期天是星期的第一天
    %u 星期(0……52), 这里星期一是星期的第一天
    %% 一个文字“%”。
    View Code

    1. Mysql修改用户密码

    转载:

    mysql修改用户密码的方法及命令

    方法1: 用SET PASSWORD命令 
    首先登录MySQL。 
    格式:mysql> set password for 用户名@localhost = password('新密码'); 
    例子:mysql> set password for root@localhost = password('123'); 

    方法2:用mysqladmin 
    格式:mysqladmin -u用户名 -p旧密码 password 新密码 
    例子:mysqladmin -uroot -p123456 password 123 

    方法3:用UPDATE直接编辑user表 
    首先登录MySQL。 
    mysql> use mysql; 
    mysql> update user set password=password('123') where user='root' and host='localhost'; 
    mysql> flush privileges; 

    方法4:在忘记root密码的时候,可以这样 
    以windows为例: 
    1. 关闭正在运行的MySQL服务。 
    2. 打开DOS窗口,转到mysqlin目录。 
    3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。 
    4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysqlin目录。 
    5. 输入mysql回车,如果成功,将出现MySQL提示符 >。 
    6. 连接权限数据库: use mysql; 。 
    6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。 
    7. 刷新权限(必须步骤):flush privileges; 。 
    8. 退出 quit。 
    9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。

    2. 关于MySQL数据库的默认编码

    查看数据库的编码,有如下两种方式,
    (1)使用status命令
    mysql> status;

    (2)使用show variables命令
    mysql> show variables like 'char%';

    如果要查看某个数据库的编码,在运行上面的命令前,应先执行use db_name;命令切换数据库(db_name为要查看的数据库名)。

    2. 改变MySQL数据库的默认编码

    安装MySQL数据库时的默认编码是latin1,实际使用时可能要使用其他编码。下文描述如何将默认编码改为utf8:

    首先修改MySQL的配置文件/etc/mysql/my.cnf:
    在[client]下追加:
    default-character-set=utf8
    在[mysqld]下追加:
    character-set-server=utf8
    在[mysql]下追加:
    default-character-set=utf8

    修改完毕后,使用如下命令之一重启mysql服务:
    service mysql restart
    /etc/init.d/mysql restart

    改变后,之前手工创建的数据库如未显式指定编码,则其编码仍是默认的latin1,可使用如下命令更改编码:
    mysql> alter database db_name CHARACTER SET utf8;
    ————————————————
    原文链接:https://blog.csdn.net/wangnan537/article/details/47819167

    设置完utf8后,使用 source D:/mysql.sql; 执行sql语句插入记录,插入汉字出错,明显是因为编码的问题。
    #查看并改变一个表的字符集
    show create table user;
    alter table user character set utf8;

    #检查数据表所有字段的状态:SHOW FULL COLUMNS FROM user;
    #改变一列的字符集:alter table user change name name varchar(20) character set utf8 collate utf8_unicode_ci not null default '';

    MySQL:ERROR 1366 (HY000)错误解决:https://blog.csdn.net/jiazhangyierzi/article/details/81215831

    Window的CMD窗口,使用utf8:chcp 65001

    3. 创建视图

    #创建视图(with check option 表示不允许修改该视图的数据)
    create or replace view view_test 
    as
    select user_name name, age, address from user
    with check option;
    #通过 show tables; 可以看到该视图

    4. 主表、从表

    主表
    在数据库中建立的表格即Table,其中存在主键(primary key)用于与其它表相关联,并且作为在主表中的唯一性标识。
    从表
    以主表的主键(primary key)值为外键 (Foreign Key)的表,可以通过外键与主表进行关联查询。从表与主表通过外键进行关联查询。属从表与主表通过外键进行关联查询。

    关系及用法概述:
    从表数据依赖于主表,一般最后查询数据时把主表与从表进行关联查询。主表可用于存储主要信息,如客户资料(客户编号,客户名称,客户公司,客户单位等),从表用来存储客户扩展信息(客户订单信息,客户地址信息,客户联系方式信息等)

    一般来说,主表与从表是一对多的关系。例如:老师 --> 学生

    # 主表
    create table tb_teachers (
        id int(10) primary key comment '教师编号',
        name varchar(20) not null comment '教师的名字'
    )comment='存教师信息的表';
    
    insert into tb_teachers values(1001,'白岩松');
    insert into tb_teachers values(1002,'杜甫');
    
    # 从表
    create table tb_students (
        id int(10) primary key comment '学生编号',
        name varchar(20) not null comment '学生的名字',
        teacher_id int(10) comment 'FOREIGN KEY 老师的编号',
        #使用表约束语法建立外键约束,并指定约束名为 student_teacher_fk
        constraint student_teacher_fk foreign key(teacher_id) references tb_teachers(id)
        on delete cascade  #也可以用 on delete set null
    )comment='存学生信息的表';
    
    insert into tb_students values(1,'Lee', 1002);
    insert into tb_students values(2,'Wang', 1001);
    
    #删除外键约束
    alter table tb_students drop foreign key student_teacher_fk;
    #添加外键约束
    #(on delete cascade :表示删除主表记录时,把参照该主表记录的从表记录全部级联删除)
    #(on delete set null :表示删除主表记录时,把参照该主表记录的从表记录的外键设为null)
    #当没有写 on delete cascade 或 on delete set null 时,是无法删除主表中被引用的记录的。
    alter table tb_students add constraint student_teacher_fk foreign key(teacher_id) references tb_teachers(id);
    alter table tb_students add constraint student_teacher_fk foreign key(teacher_id) references tb_teachers(id) on delete set null;
    

    ******************

    常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。

    昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。
  • 相关阅读:
    C#中小写人民币转大写
    Oracle中按规定的字符截取字符串
    Oracle中table数据数据类型
    Oracle中case的第二种用法
    javascript跳转页面
    C#添加二维码带加密带logo
    Oracle
    Oracle中with关键字的使用
    jquery
    插入排序,希尔排序原理,代码及复杂度分析
  • 原文地址:https://www.cnblogs.com/htj10/p/12728530.html
Copyright © 2020-2023  润新知