我想找点有关数据库学习方面的视频和笔记 谢谢各位能帮助我一下

解决方案 »

  1.   

    MySQL数据库的基本操作命令
    http://topic.csdn.net/u/20110916/00/18af1698-b756-426b-84ee-f74a7516954d.html?32523一、mysql服务操作  
    0、查看数据库版本 sql-> status;
    1、net start mysql //启动mysql服务  2、net stop mysql //停止mysql服务   3、mysql -h主机地址 -u用户名 -p用户密码 //进入mysql数据库  4、quit //退出mysql操作  5、mysqladmin -u用户名 -p旧密码 password 新密码 //更改密码  6、grant select on 数据库.* to 用户名@登录主机 identified by "密码" //增加新用户  
    exemple:  
    例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作 (localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据 库,只能通过MYSQL主机上的web页来访问了。  
    grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";  
    如果你不想test2有密码,可以再打一个命令将密码消掉。  
    grant select,insert,update,delete on mydb.* to test2@localhost identified by "";  二、数据库操作  
    1、show databases; //列出数据库  2、use database_name //使用database_name数据库  3、create database data_name //创建名为data_name的数据库  4、drop database data_name //删除一个名为data_name的数据库  三、表操作  
    1、show databases;//列出所有数据库use 数据库名; //到达某一数据库show tables //列出所有表  
    create table tab_name(  
    id int(10) not null auto_increment primary key,  
    name varchar(40),  
    pwd varchar(40)  
    ) charset=gb2312; 创建一个名为tab_name的新表  
    2、drop table tab_name 删除名为tab_name的数据表  
    3、describe tab_name //显示名为tab_name的表的数据结构  
    4、show columns from tab_name //同上  
    5、delete from tab_name //将表tab_name中的记录清空  
    6、select * from tab_name //显示表tab_name中的记录  
    7、mysqldump -uUSER -pPASSWORD --no-data DATABASE TABLE > table.sql //复制表结构  四、修改表结构  
    1、 ALTER TABLE tab_name ADD PRIMARY KEY (col_name)  
    说明:更改表得的定义把某个栏位设为主键。  
    2、ALTER TABLE tab_name DROP PRIMARY KEY (col_name)  
    说明:把主键的定义删除  
    3、 alter table tab_name add col_name varchar(20); //在tab_name表中增加一个名为col_name的字段且类型为varchar(20)  
    4、alter table tab_name drop col_name //在tab_name中将col_name字段删除  
    5、alter table tab_name modify col_name varchar(40) not null //修改字段属性,注若加上not null则要求原字段下没有数据  
    SQL Server200下的写法是:Alter Table table_name Alter Column col_name varchar(30) not null;  
    6、如何修改表名:alter table tab_name rename to new_tab_name  
    7、如何修改字段名:alter table tab_name change old_col new_col varchar(40); //必须为当前字段指定数据类型等属性,否则不能修改  
    8、create table new_tab_name like old_tab_name //用一个已存在的表来建新表,但不包含旧表的数据  五、数据的备份与恢复  
    导入外部数据文本:  
    1.执行外部的sql脚本  
    当前数据库上执行:mysql < input.sql  
    指定数据库上执行:mysql [表名] < input.sql  
    2.数据传入命令 load data local infile "[文件名]" into table [表名];  
    备份数据库:(dos下)  
    mysqldump --opt school>school.bbb  
    mysqldump -u [user] -p [password] databasename > filename (备份)  
    mysql -u [user] -p [password] databasename < filename (恢复)  六、卸载
    卸载mysql:sudo apt-get remove mysql-server mysql-client
    sudo apt-get autoremove以上就是我现在所接触的mysql,又不足之地,还望各位高手多多指点
    http://k.beidaqingniao.com
      

  2.   

    MySQL Join 詳解還是先 Create table 吧create table emp(
      id   int not null primary key,
      name     varchar(10)
    );create table emp_dept(
      dept_id       varchar(4) not null,
      emp_id        int not null,
      emp_name      varchar(10),
      primary key (dept_id,emp_id));
    insert into emp() values
    (1,"Dennis-1"),
    (2,"Dennis-2"),
    (3,"Dennis-3"),
    (4,"Dennis-4"),
    (5,"Dennis-5"),
    (6,"Dennis-6"),
    (7,"Dennis-7"),
    (8,"Dennis-8"),
    (9,"Dennis-9"),
    (10,"Dennis-10");insert into emp_dept() values
    ("R&D",1,"Dennis-1"),
    ("DEv",2,"Dennis-2"),
    ("R&D",3,"Dennis-3"),
    ("Test",4,"Dennis-4"),
    ("Test",5,"Dennis-5");>> left join
    -------------
    select a.id,a.name,b.dept_id
    from  emp a left join emp_dept b on (a.id=b.emp_id);# 挑出左邊的 table emp 中的所有資料,即使 emp_dept 中沒有的資料也挑出來,沒有的就用 NULL 來顯示,
    # 也即顯示資料是以左邊的 table emp 中的資料為基礎mysql> select a.id,a.name,b.dept_id
        -> from  emp a left join emp_dept b on (a.id=b.emp_id);
    +----+-----------+---------+
    | id | name      | dept_id |
    +----+-----------+---------+
    |  1 | Dennis-1  | R&D     |
    |  2 | Dennis-2  | DEv     |
    |  3 | Dennis-3  | R&D     |
    |  4 | Dennis-4  | Test    |
    |  5 | Dennis-5  | Test    |
    |  6 | Dennis-6  | NULL    |
    |  7 | Dennis-7  | NULL    |
    |  8 | Dennis-8  | NULL    |
    |  9 | Dennis-9  | NULL    |
    | 10 | Dennis-10 | NULL    |
    +----+-----------+---------+# 挑出 table emp 中有而 table emp_dept 中沒有的人員資料
    select a.id,a.name,b.dept_id
    from emp a  left join  emp_dept b on (a.id=b.emp_id)
    where b.dept_id IS NULL;mysql> select a.id,a.name,b.dept_id
        -> from emp a  left join  emp_dept b on (a.id=b.emp_id)
        -> where b.dept_id IS NULL;
    +----+-----------+---------+
    | id | name      | dept_id |
    +----+-----------+---------+
    |  6 | Dennis-6  | NULL    |
    |  7 | Dennis-7  | NULL    |
    |  8 | Dennis-8  | NULL    |
    |  9 | Dennis-9  | NULL    |
    | 10 | Dennis-10 | NULL    |
    +----+-----------+---------+# 把 table emp_dept 放在左邊的情形(當然以 emp_dept 中的數據為基礎來顯示資料,emp 中比emp_dept 中多的資料也就不會顯示出來了):select a.id,a.name,b.dept_id
    from  emp_dept b left join  emp a on (a.id=b.emp_id);
    mysql> select a.id,a.name,b.dept_id
        -> from  emp_dept b left join  emp a on (a.id=b.emp_id);
    +------+----------+---------+
    | id   | name     | dept_id |
    +------+----------+---------+
    |    2 | Dennis-2 | DEv     |
    |    1 | Dennis-1 | R&D     |
    |    3 | Dennis-3 | R&D     |
    |    4 | Dennis-4 | Test    |
    |    5 | Dennis-5 | Test    |
    +------+----------+---------+>> right join
    ---------------
    select a.id,a.name,b.dept_id
    from  emp a right join emp_dept b on (a.id=b.emp_id);
    # 挑資料時以右邊 table emp_dept 中的資料為基礎來顯示資料mysql> select a.id,a.name,b.dept_id
        -> from  emp a right join emp_dept b on (a.id=b.emp_id);
    +------+----------+---------+
    | id   | name     | dept_id |
    +------+----------+---------+
    |    2 | Dennis-2 | DEv     |
    |    1 | Dennis-1 | R&D     |
    |    3 | Dennis-3 | R&D     |
    |    4 | Dennis-4 | Test    |
    |    5 | Dennis-5 | Test    |
    +------+----------+---------+
    5 rows in set (0.00 sec)# 我們再把 table 的位置交換一下,再用 right join 試試select a.id,a.name,b.dept_id
    from  emp_dept b  right join emp a on (a.id=b.emp_id);mysql> select a.id,a.name,b.dept_id
        -> from  emp_dept b  right join emp a on (a.id=b.emp_id);
    +----+-----------+---------+
    | id | name      | dept_id |
    +----+-----------+---------+
    |  1 | Dennis-1  | R&D     |
    |  2 | Dennis-2  | DEv     |
    |  3 | Dennis-3  | R&D     |
    |  4 | Dennis-4  | Test    |
    |  5 | Dennis-5  | Test    |
    |  6 | Dennis-6  | NULL    |
    |  7 | Dennis-7  | NULL    |
    |  8 | Dennis-8  | NULL    |
    |  9 | Dennis-9  | NULL    |
    | 10 | Dennis-10 | NULL    |
    +----+-----------+---------+# 是不是和 left join 一樣了?>> direct join
    --------------
    # 如果用right join 同不用 Join 直接挑資料是相同的,它等介於以下的指令select a.id,a.name,b.dept_id
    from  emp a ,emp_dept b 
    where a.id=b.emp_id;
    mysql> select a.id,a.name,b.dept_id
        -> from  emp a ,emp_dept b
        -> where a.id=b.emp_id;
    +----+----------+---------+
    | id | name     | dept_id |
    +----+----------+---------+
    |  2 | Dennis-2 | DEv     |
    |  1 | Dennis-1 | R&D     |
    |  3 | Dennis-3 | R&D     |
    |  4 | Dennis-4 | Test    |
    |  5 | Dennis-5 | Test    |
    +----+----------+---------+
    怎樣,弄明白了嗎?Enjoy it!
      

  3.   

    先读三遍《数据库系统概论(第四版)》 王珊 萨师煊   高等教育出版社 (掌握基础知识和概念) 然后再粗略浏览一遍MYSQL的官方手册。(方便以后查找,避免类似于考试的时候,给你本政治书也不知道答案在第几章,第几页)MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  4.   

    参照mysql的中文技术手册就可以了,不过建议学习下postgresql,比mysql强大很多,中文资料很全