zoukankan      html  css  js  c++  java
  • 数据库(1)

    Python高级

    数据库(Database)

    存放数据的仓库,用于管理大量甚至海量数据

    DBMS:Database Management System,数据库管理系统,用于管理数据库,是一个独立的程序

    DBA:Database Administrator,数据库管理员,它是一个人

    数据可有两种类型:关系型数据库(RDBMS, Relationship Database Management System)、非关系型数据库(NO-SQL)

    主流关系型数据库产品:

    大型数据库:Oracle(美国的一家公司,很强大的数据库,功能非常完善,能管理T级的数据,在中国有家名为“甲骨文”的公司,其用C++开发的,用Java做的界面) 、SQL Server(微软公司的产品,学习难度低,傻瓜式软件,跟windows很配,也是用C++开发的)、DB2( IBM公司开发的 )等

    中型数据库:MySQL(起源是荷兰一家公司,现在是Oracle公司旗下的产品)等

    小型数据库:Access等

    微型数据库: SQLite (开源,世界上最小的数据库,c语言写的,甚至只是一个库,而不是一个程序,一般用于手机上的APP开发)

    中国自主研发的数据库:达梦

    所有关系型数据库数据库产品都遵守SQL标准,即都可以通过SQL访问它们,所以我们随便选择一个进行学习就行

    主流非关系型数据库产品:MongoDB,Redis等

    SQL

    Struct Query Language,结构化查询语言,用于和DBMS交流沟通

    SQL结构化查询语言包含六个部分:

    (1):数据查询语言(DQL:Data Query Language): 其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。 (2):数据操作语言(DML:Data Manipulation Language): 其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。 (3):事务处理语言(TPL): 它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。 (4):数据控制语言(DCL): 它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。 (5):数据定义语言(DDL): 其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。 (6):指针控制语言(CCL): 它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作

    一个数据库可以包含多张表(Table),数据存放在表中

    表就是一个二维表格,由若干行(Row)和列(Column)构成,一行数据也称为一条记录(Record),一列也称为一个字段(Field)

    在关系型数据库中数据都存放在表中

    扩展

    查看数据库

    show databases ;

    登录

    mysql -h ip地址 -u root -p 然后输入密码登录 # -h如果是本机登录就不需要带,连接别人的就带-h接ip地址

    创建用户

    create user 'azhe'@'%' identified by '602661651';

    %代表可以在所有机器上登录

    创建mydb数据库

    create database mydb default character set utf8

    删除数据库

    drop database 名称;

    删除用户

    drop user 用户名称;

    删除student表

    drop table student;

    将mydb的所有权限都给azhe用户

    grant all on mydb.* to 'azhe'@'%';

    取消权限

    revoke all on mydb.* to 'azhe'@'%'

    刷新权限

    flush privileges;

    改名,旧用户名to新用户名

    rename user azhe to yrz

    更改密码

    set password for 'azhe'@'%' = password(" 123456")

    打开mydb数据库

    use mydb

    建表

    create table student (sno int unsigned, name varchar(20), phone char (11));

    定长字符串char 变长字符串vachar

    定长字符串的存取速度要快于变长字符串

    在student表中增加内容,此处增加手机号

    alter table student add column phone char(11);

    查看表

    desc student;

    更改表的结构

    alter table student modify sno int(6) unsigned;

    往表中插入数据

    insert into student values (1001, “张三”,“男”, 4.1, “1996-3-20”,“15927911307”)

    insert into student (sno,phone,name) values (1002, '18527384912', "李四")

    查看student表,*代表所有,也可以换成name等

    select * from student;

    清空student表

    delete from student;

    删掉student表中指定的内容:

    where只有满足条件的才会被操作,name这里的=是比较运算符

    where子句指定操作条件

    delete from student where name=‘张三’;

    更改张三的名字为张三丰

    update student set name=“张三丰” where sno=1001;

    如果相同时改多个字段,用,隔开

    primary key 主键 非空 并且唯一

    一般把文件的路径存放在数据库中,几乎没有人把文件直接存放在数据库的表中

    数据库设计原则:在够用的情况下,尽量少占用存取空间

    root用户默认不能远程登录,只能本机登录

    MySQL中单引号和双引号引起来的都是字符串

    SQL关键字不区分大小写

    大文件不能一次性读到内存中 ,这样会让电脑卡死 ,只能每次读取一点数据,操作后再读取一点数据进行操作

  • 相关阅读:
    Python并行编程(七):线程同步之事件
    Python并行编程(六):线程同步之条件
    Python并行编程(五):线程同步之信号量
    Python并行编程(四):线程同步之RLock
    Python并行编程(三):线程同步之Lock
    UML关系总结——画uml图、流程图、软件结构图、类图、顺序图的方法
    2020,你好!
    字符串和多维数组
    排序算法
    查找技术
  • 原文地址:https://www.cnblogs.com/yanruizhe/p/11379625.html
Copyright © 2011-2022 走看看