MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行

简介: MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
C#开发工具:Visual Studio 2012
数据库:Sql Server
Windows版本:Win10
分辨率:1366*768
文章的最后有KTV点歌系统的前后台源码下载链接。

在正式写代码之前先看一下运行效果图,如果觉得这个是你需要的,那么请接着往下看,如果不是,可以换家~(窗体没有美化,但是基本上的功能都已经实现了)
在这里插入图片描述
歌星点歌(其他的都一样,知识数据库语句不一样,改改就可以了):
在这里插入图片描述
在这里插入图片描述
下面的那些按钮都已经实现了。接下来看功能,首先是DBHelper类:

public class DBHelper
    {
        //数据库连接字符串
        public string conStr = @"Data Source=.;Initial Catalog=MyKTV;Integrated Security=True";

        //连接数据库
        public SqlConnection conn;

        public SqlConnection GetConn() {
            if(conn==null){
                conn = new SqlConnection(conStr);
            }
            return conn;
        }

        //打开连接
        public void OpenConn() {
            if(conn.State==ConnectionState.Broken){
                //先关闭在打开
                conn.Close();
                conn.Open();
            }else if(conn.State==ConnectionState.Closed){
                conn.Open();
            }
        }

        //关闭连接
        public void CloseConn() {
            if(conn.State==ConnectionState.Open||conn.State==ConnectionState.Broken){
                conn.Close();
            }
        }

    }

接下来需要一个Song的歌曲类

public class Song
    {
        private int song_id;            //歌曲编号 
        private string song_name;       //歌曲名称
        private string song_ab;         //歌曲拼音
        private int song_word_count;    //字数 
        private int songtype_id;        //类型编号
        private int singer_id;          //歌星编号
        private string song_url;        //歌曲地址.mp3
        private int song_play_count;    //点击量
        private string song_ban;        //伴唱
        private string singer_name;     //歌手名称
        private string song_typename;  //歌曲类别名称


        public string Singer_name
        {
            get { return singer_name; }
            set { singer_name = value; }
        }
        

        public string Song_typename
        {
            get { return song_typename; }
            set { song_typename = value; }
        }


        public int Song_id
        {
            get { return song_id; }
            set { song_id = value; }
        }
        
        public string Song_name
        {
            get { return song_name; }
            set { song_name = value; }
        }

        public string Song_ab
        {
            get { return song_ab; }
            set { song_ab = value; }
        }
          
        public int Song_word_count
        {
            get { return song_word_count; }
            set { song_word_count = value; }
        }
        
        public int Songtype_id
        {
            get { return songtype_id; }
            set { songtype_id = value; }
        }
        
        public int Singer_id
        {
            get { return singer_id; }
            set { singer_id = value; }
        }
        
        public string Song_url
        {
            get { return song_url; }
            set { song_url = value; }
        }
       
        public int Song_play_count
        {
            get { return song_play_count; }
            set { song_play_count = value; }
        }
        
        public string Song_ban
        {
            get { return song_ban; }
            set { song_ban = value; }
        }

        private int id;            //编号 
        private string musicNameY;//原唱
        private string musicName;//歌曲名称
        private string musicNameB;//伴唱
        private string musicPic;    //图片
        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        public string MusicName
        {
            get { return musicName; }
            set { musicName = value; }
        }
        public string MusicNameY
        {
            get { return musicNameY; }
            set { musicNameY = value; }
        }
        public string MusicNameB
        {
            get { return musicNameB; }
            set { musicNameB = value; }
        }
        public string MusicPic
        {
            get { return musicPic; }
            set { musicPic = value; }
        }

    }

接着,看看窗体是怎么布局的:
在这里插入图片描述
需要注意的是下面几个点:
1.暂停按钮的tag属性值是:zanting
2.静音按钮的tag属性值是:mute
3.伴唱按钮的tag属性值是:banchang
4.默认播放的MV是“2002年的第一场雪”
5.所有已点歌曲列表后面的“删”和“顶”的按钮绑定的事件是一样的。
6.所有的“未添加歌曲”的label绑定的事件是一样的。
下面就是代码的实现:

一、窗体的全局变量:

 public string tag = "";     //区分是什么点歌
        DBHelper db = new DBHelper();
        //保存查询出来的歌曲
        public List<Song> selectMusic = new List<Song>();
        private int pagesize = 5;//一个panel里面有6个label显示数据
        private int pagenow = 1;//当前为第一页(歌曲列表)
        private int pagenow_yidian = 1;//已点歌曲列表

        //这里是放置歌曲的路径,因为采用绝对路径,
        //vs不识别,所以要加符号“@”,个人可尝试删除该符号看结果
        private const string MUSICURL = @"D:\青鸟\信工校区\18级1班\KTV项目\music\";
        //保存已点的歌曲
        public List<Song> chooseMusic = new List<Song>();

二、窗体加载事件:

 private void FrmSongListInfo_Load_1(object sender, EventArgs e)
        {
          
            FindSongBySinger(FrmSingerDianGe.sex);
            //隐藏掉panal3
            this.panel3.Hide();
            //播放一首mv2002年的第一场雪.mp4
            //播放地址
            this.axWindowsMediaPlayer1.URL = MUSICURL + "2002年的第一场雪.mp4";

            //伴奏
            this.axWindowsMediaPlayer2.URL = MUSICURL + "伴2002年的第一场雪.mp3";

            //播放列表状态
            this.axWindowsMediaPlayer1.uiMode = "Full";
            //第二个的音量是0
            this.axWindowsMediaPlayer2.settings.volume = 0;
            this.axWindowsMediaPlayer1.Tag = "now";//系统自动加载默认歌曲正在播放时,tag设置为now,(见102和133切歌操作使用)
            //不记录容易出现一个问题,默认歌曲播放时,当我们点击切歌时,第1首歌曲被切割掉,而系统仍能自动播放被切掉的歌曲。
        }

三、根据歌星查询歌曲信息的方法

 public void FindSongBySinger(string sex)
        {
            string sql = string.Format("select song_id,song_name,song_ab,song_word_count,songtype_name,singer_name,song_url,song_play_count from song_info g,singer_info s ,song_type t where g.singer_id = s.singer_id and g.songtype_id = t.songtype_id and singer_gender = '{0}' order by song_id asc", sex);
            SqlCommand cmd = new SqlCommand(sql, db.GetConn());
            db.OpenConn();
            SqlDataReader dr = cmd.ExecuteReader();

            while (dr.Read())
            {
                Song song = new Song();
                song.Song_id = Convert.ToInt32(dr[0]);
                song.Song_name = dr[1].ToString();
                song.Song_ab = dr[2].ToString();
                song.Song_word_count = Convert.ToInt32(dr[3]);
                song.Song_typename = dr[4].ToString();
                song.Singer_name = dr[5].ToString();
                song.Song_url = dr[6].ToString();
                song.Song_play_count = Convert.ToInt32(dr[7]);
                selectMusic.Add(song);
            }
            dr.Close();
            db.CloseConn();


            //遍历集合,获得集合中所有的元素  i<7
            for (int i = 0; i < pagesize; i++)
            {
                //得到歌曲的名称
                string name = selectMusic[i].Song_name;
                //得到歌手名称
                string singer_name = selectMusic[i].Singer_name;
                //编译panel集合中的所有控件,并用控件类型进行接收(Control)
                Control c = this.panel2.Controls[i];
                //将控件类型还原成Label
                Label la = (Label)c;
                //给label的Text属性进行赋值
                la.Text = name + "---" + singer_name;
            }


        }

四、歌曲列表的上一页:

private void button6_Click(object sender, EventArgs e)
        {
            //实现分页功能
            if (pagenow > 1)
            {
                pagenow -= 1;//点击下一页的时候页数-1
                //遍历控件将里面所有显示的数据清空,方便继续添加数据
                for (int i = 0; i < pagesize; i++)
                {
                    Label la = (Label)this.panel2.Controls[i];
                    la.Text = "";
                }
                try
                {
                    //遍历控件,继续添加数据
                    for (int i = 0; i < pagesize; i++)
                    {
                        Label la = (Label)this.panel2.Controls[i];
                        //如果再使用下标的话,下标还是从0开始,我们需要继续添加数据
                        //7(6) 6    1
                        la.Text = selectMusic[(pagenow - 1) * pagesize + i].Song_name + "---" + selectMusic[(pagenow - 1) * pagesize + i].Singer_name;
                    }
                }
                catch (Exception ex)
                {
                    this.button2.Enabled = false;
                    this.button1.Enabled = true;
                }
            }

        }

五、歌曲列表的下一页:

private void button7_Click(object sender, EventArgs e)
        {
            //根据性别查询的歌曲数量
            int count = FindSongCountBySex(FrmSingerDianGe.sex);
            //根据数量计算页数
            int page_count = 0;
            if (count % pagesize != 0)
            {
                page_count = count / pagesize + 1;
            }
            else {
                page_count = count / pagesize;
            }

           // MessageBox.Show(page_count.ToString());
            if (pagenow <= page_count-1)
            {
                //实现分页功能
                pagenow += 1;//点击下一页的时候页数+1
                //遍历控件将里面所有显示的数据清空,方便继续添加数据
                for (int i = 0; i < pagesize; i++)
                {
                    Label la = (Label)this.panel2.Controls[i];
                    la.Text = "";
                }
                try
                {
                    //遍历控件,继续添加数据
                    for (int i = 0; i < pagesize; i++)
                    {
                        Label la = (Label)this.panel2.Controls[i];
                        //如果再使用下标的话,下标还是从0开始,我们需要继续添加数据
                      //  MessageBox.Show(selectMusic[(pagenow - 1) * pagesize + i].Song_name);
                            //7(6) 6    1
                            la.Text = selectMusic[(pagenow - 1) * pagesize + i].Song_name + "---" + selectMusic[(pagenow - 1) * pagesize + i].Singer_name;
                        
                        
                    }
                }
                catch (Exception ex)
                {
                    this.button2.Enabled = false;
                    this.button1.Enabled = true;
                }

            }
            else {
                MessageBox.Show("已经是最后一页了");
            }

          
        }

六、根据歌星的性别查询歌曲的总记录数:

 public int FindSongCountBySex(string sex) {
            string sql = string.Format("select count(*) from song_info g,singer_info s ,song_type t where g.singer_id = s.singer_id and g.songtype_id = t.songtype_id and singer_gender = '{0}'", sex);
            SqlCommand cmd = new SqlCommand(sql, db.GetConn());
            db.OpenConn();
            int rel =(int)cmd.ExecuteScalar();
            db.CloseConn();
            return rel;
        }

        //歌曲的点击事件
        private void label6_Click(object sender, EventArgs e)
        {
            Label la = (Label)sender;
            //截取前面的歌曲名称
            string song_name = la.Text;
            int index = song_name.IndexOf("-");
            string sname = song_name.Substring(0,index);
            //MessageBox.Show(sname);
            //点击的时候添加到集合中
            Song song = new Song();
            song.Song_name = sname;
            chooseMusic.Add(song);
            //更新已点歌曲列表
            //遍历choosie集合里面的所有数据
            BianLiMusicList();
        }

七、播放的方法:

 private void BrodCast()
        {
            this.timer1.Enabled = true;
            //点歌之后在歌曲列表中选择第一个列表中的歌曲进行播放
            this.axWindowsMediaPlayer1.URL = MUSICURL + this.label7.Text.ToString() + ".mp3";
            //伴唱
            this.axWindowsMediaPlayer2.URL = MUSICURL + "伴"+this.label7.Text.ToString() + ".mp3";

            // MessageBox.Show(this.label2.Text);
            //播放
            this.axWindowsMediaPlayer1.Ctlcontrols.play();
            this.axWindowsMediaPlayer2.Ctlcontrols.play();
            this.axWindowsMediaPlayer1.Tag = this.label7.Text;//记录当前正在播放歌曲的名称

        }

八、已点歌曲的按钮:

private void button28_Click(object sender, EventArgs e)
        {
            if(this.button28.Tag.Equals("hide")){
                //当前是显示的状态
                this.panel3.Hide();
                this.button28.Tag = "show";
                
            }
            else if (this.button28.Tag.Equals("show"))
            {
                //当前是隐藏的状态
                this.panel3.Show();
                this.button28.Tag = "hide";
                this.panel3.BringToFront();
            }
            //遍历choosie集合里面的所有数据
            BianLiMusicList();
        }

九、遍历播放的歌曲列表

 public void BianLiMusicList()
        {

            if (chooseMusic.Count <= 5)
            {
                //遍历歌曲列表
                for (int i = 0; i < chooseMusic.Count; i++)
                {
                    Label la = (Label)this.panel1.Controls[i];
                    la.Text = chooseMusic[i].Song_name;
                }
            }
            else {
                //遍历歌曲列表
                for (int i = 0; i < pagesize; i++)
                {
                    Label la = (Label)this.panel1.Controls[i];
                    la.Text = chooseMusic[i].Song_name;
                }
            }
            
        }

十、暂停

 private void button2_Click(object sender, EventArgs e)
        {
            //首先必须将pictureBox2的tag属性设置为zanting,否则会出现空异常
            if (this.button2.Tag.Equals("zanting"))
            {
                //播放
                this.axWindowsMediaPlayer1.Ctlcontrols.pause();
                //播放
                this.axWindowsMediaPlayer2.Ctlcontrols.pause();
                this.button2.Tag = "bofang";
            }
            else
            {
                this.axWindowsMediaPlayer1.Ctlcontrols.play();
                this.axWindowsMediaPlayer2.Ctlcontrols.play();
                this.button2.Tag = "zanting";
            }
        }

十一、静音:

 private void button3_Click(object sender, EventArgs e)
        {
            if (this.button3.Tag.Equals("mute"))
            {
                //静音
                this.axWindowsMediaPlayer1.settings.mute = true;
                this.axWindowsMediaPlayer2.settings.mute = true;
                this.button3.Tag = "huifu";
            }
            else
            {
                //不静音
                this.axWindowsMediaPlayer1.settings.mute = false;
                this.axWindowsMediaPlayer2.settings.mute = false;
                this.button3.Tag = "mute";
            }
        }
       

十二、加音:

private void button17_Click(object sender, EventArgs e)
        {
            this.axWindowsMediaPlayer1.settings.volume += 30;
        }

十三、减音:

  //减音
        private void button18_Click(object sender, EventArgs e)
        {
            this.axWindowsMediaPlayer1.settings.volume -= 30;
        }

十四、伴唱:

 private void button4_Click(object sender, EventArgs e)
        {
            if (this.button4.Tag.Equals("banchang"))
            {
                //正常播放的静音
                this.axWindowsMediaPlayer1.settings.mute = true;
                //音量
                this.axWindowsMediaPlayer2.settings.volume = 100;
                this.button4.Tag = "huifu";
            }
            else
            {
                this.axWindowsMediaPlayer1.settings.mute = false;
                //音量
                this.axWindowsMediaPlayer2.settings.volume = 0;
                this.button4.Tag = "banchang";
            }
        }

十五、重唱:

        private void button16_Click(object sender, EventArgs e)
        {
            this.axWindowsMediaPlayer1.Ctlcontrols.stop();
            this.axWindowsMediaPlayer2.Ctlcontrols.stop();
            this.axWindowsMediaPlayer1.Ctlcontrols.play();
            this.axWindowsMediaPlayer2.Ctlcontrols.play();
        }

十六、切歌:

private void button5_Click(object sender, EventArgs e)
        {
            if (chooseMusic.Count <= 1)
            {//最后一首歌时,切歌功能失效,提示请选择新歌曲
                MessageBox.Show("这是最后一首,请继续选歌");
                return;
            }
            if (!this.axWindowsMediaPlayer1.Tag.ToString().Equals("now"))
            {

                /*
                 * chooseMusic集合内有所有已选歌曲。)
                 * panel2控件中的label控件,显示chooseMusic集合。
                 * 切歌操作:把最上面的第一首歌删除掉,第二首歌成为第一首歌,因此
                 *1: 清空panel2控件中的label控件的text
                 *2:删除chooseMusic集合第一个元素
                 *3:再次填充panel2控件中的label控件text
                 */

                chooseMusic.RemoveAt(0);//把集合中的第一个删除掉

                //遍历歌曲列表
                BianLiMusicList();
                //刷新已选歌曲列表
                FlushList();

            }

            BrodCast();
        }

十七、刷新已选歌曲列表:

  private void FlushList()
        {
            int labelNumber = this.panel1.Controls.Count;//获取panel2控件中有多少控件

            //将里面所有的label都弄成空的
            for (int i = 0; i < labelNumber; i++)
            {
                Label l = (Label)this.panel1.Controls[i];
                l.Text = "";
                l.Tag = "";
            }

            //遍历显示歌曲名称
            BianLiMusicList();
        }

十八、删除歌曲:

private void button27_Click(object sender, EventArgs e)
        {
            Button pb = (Button)sender;
            int index = Convert.ToInt32(pb.Tag);//每一个删除按钮的Tag里都记录着对应的序号,在这里获取序号,直接在chooseMusic集合里删除。
            string currentMusic = this.axWindowsMediaPlayer1.Text.ToString();//当前正在播放歌曲的名称
            string listMusic = chooseMusic[index].Song_name;
            if (listMusic.Equals(currentMusic))
            {
                MessageBox.Show("当前是第一首歌,不能删除");
                return;
            }
            //删除的序号必须不能大于chooseMusic的实际长度,否则不执行操作
            if (index + 1 <= chooseMusic.Count)
            {
                chooseMusic.RemoveAt(index);
                FlushList();

            }
            //重新遍历歌曲列表
            BianLiMusicList();
        }

十九、顶歌:

private void button26_Click(object sender, EventArgs e)
        {
            Button pb = (Button)sender;
            int index = Convert.ToInt32(pb.Tag);//每一个Button的Tag里都记录着对应的序号,在这里获取序号,
            //直接在chooseMusic集合里操作。
            string currentMusic = this.axWindowsMediaPlayer1.Tag.ToString();//当前正在播放歌曲的名称
            string listMusic = chooseMusic[index].Song_name;
            if (listMusic.Equals(currentMusic))
            {
                MessageBox.Show("已经是第一首歌,不能顶歌?");
                return;
            }
            int upIndex = index - 1;
            if (upIndex == 0)
            { //顶歌时,每顶一次,该歌曲就往前排名多一位,当从第二位顶到第一位时
                //如果第一位的歌曲正在播放,则不能继续顶
                if (!currentMusic.Equals("now"))
                {
                    MessageBox.Show("第一首正在播放,不能置顶");
                    return;
                }
            }
            Song mu = chooseMusic[index - 1];
            chooseMusic[index - 1] = chooseMusic[index];
            chooseMusic[index] = mu;

            FlushList();
        }

二十、已点歌曲的上一页:

private void button29_Click(object sender, EventArgs e)
        {
            //实现分页功能
            if (pagenow_yidian > 1)
            {
                pagenow_yidian -= 1;//点击下一页的时候页数-1
                //遍历控件将里面所有显示的数据清空,方便继续添加数据
                for (int i = 0; i < pagesize; i++)
                {
                    Label la = (Label)this.panel1.Controls[i];
                    la.Text = "";
                }
                try
                {
                    //遍历控件,继续添加数据
                    for (int i = 0; i < pagesize; i++)
                    {
                        Label la = (Label)this.panel1.Controls[i];
                        //如果再使用下标的话,下标还是从0开始,我们需要继续添加数据
                        //7(6) 6    1
                        la.Text = chooseMusic[(pagenow_yidian - 1) * pagesize + i].Song_name;
                    }
                }
                catch (Exception ex)
                {
                    this.button2.Enabled = false;
                    this.button1.Enabled = true;
                }
            }
        }

二十一、已点歌曲的下一页:

 private void button30_Click(object sender, EventArgs e)
        {
            //根据性别查询的歌曲数量
            int count = chooseMusic.Count();
            //根据数量计算页数
            int page_count = 0;
            if (count % pagesize != 0)
            {
                page_count = count / pagesize + 1;
            }
            else
            {
                page_count = count / pagesize;
            }

            // MessageBox.Show(page_count.ToString());
            if (pagenow_yidian <= page_count - 1)
            {
                //实现分页功能
                pagenow_yidian += 1;//点击下一页的时候页数+1
                //遍历控件将里面所有显示的数据清空,方便继续添加数据
                for (int i = 0; i < pagesize; i++)
                {
                    Label la = (Label)this.panel1.Controls[i];
                    la.Text = "";
                }
                try
                {
                    //遍历控件,继续添加数据
                    for (int i = 0; i < pagesize; i++)
                    {
                        Label la = (Label)this.panel1.Controls[i];
                        //如果再使用下标的话,下标还是从0开始,我们需要继续添加数据
                        //  MessageBox.Show(selectMusic[(pagenow - 1) * pagesize + i].Song_name);
                        //7(6) 6    1
                        la.Text = chooseMusic[(pagenow_yidian - 1) * pagesize + i].Song_name;


                    }
                }
                catch (Exception ex)
                {
                    this.button2.Enabled = false;
                    this.button1.Enabled = true;
                }

            }
            else
            {
                MessageBox.Show("已经是最后一页了");
            }
        }

下面是数据库脚本代码:

USE [master]
GO
/****** Object:  Database [MyKTV]    Script Date: 2019/5/31 8:56:21 ******/
CREATE DATABASE [MyKTV]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'MyKTV', FILENAME = N'D:\DB\MyKTV项目\MyKTV.mdf' , SIZE = 7168KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'MyKTV_log', FILENAME = N'D:\DB\MyKTV项目\MyKTV_log.ldf' , SIZE = 3136KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTER DATABASE [MyKTV] SET COMPATIBILITY_LEVEL = 90
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [MyKTV].[dbo].[sp_fulltext_database] @action = 'disable'
end
GO
ALTER DATABASE [MyKTV] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [MyKTV] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [MyKTV] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [MyKTV] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [MyKTV] SET ARITHABORT OFF 
GO
ALTER DATABASE [MyKTV] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [MyKTV] SET AUTO_CREATE_STATISTICS ON 
GO
ALTER DATABASE [MyKTV] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [MyKTV] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [MyKTV] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [MyKTV] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [MyKTV] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [MyKTV] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [MyKTV] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [MyKTV] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [MyKTV] SET  DISABLE_BROKER 
GO
ALTER DATABASE [MyKTV] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [MyKTV] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [MyKTV] SET TRUSTWORTHY OFF 
GO
ALTER DATABASE [MyKTV] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO
ALTER DATABASE [MyKTV] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [MyKTV] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [MyKTV] SET HONOR_BROKER_PRIORITY OFF 
GO
ALTER DATABASE [MyKTV] SET RECOVERY FULL 
GO
ALTER DATABASE [MyKTV] SET  MULTI_USER 
GO
ALTER DATABASE [MyKTV] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [MyKTV] SET DB_CHAINING OFF 
GO
ALTER DATABASE [MyKTV] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) 
GO
ALTER DATABASE [MyKTV] SET TARGET_RECOVERY_TIME = 0 SECONDS 
GO
EXEC sys.sp_db_vardecimal_storage_format N'MyKTV', N'ON'
GO
USE [MyKTV]
GO
/****** Object:  Table [dbo].[admin_info]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[admin_info](
    [admin_id] [int] IDENTITY(1,1) NOT NULL,
    [admin_pwd] [varchar](50) NOT NULL,
    [admin_name] [varchar](50) NOT NULL,
 CONSTRAINT [PK_admin_info] PRIMARY KEY CLUSTERED 
(
    [admin_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[resource_path]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[resource_path](
    [resource_id] [int] IDENTITY(1,1) NOT NULL,
    [resource_type] [nvarchar](100) NOT NULL,
    [resource_path] [nvarchar](300) NOT NULL,
 CONSTRAINT [PK_resource_path] PRIMARY KEY CLUSTERED 
(
    [resource_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[singer_info]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[singer_info](
    [singer_id] [int] IDENTITY(1,1) NOT NULL,
    [singer_name] [nvarchar](50) NOT NULL,
    [singertype_id] [int] NOT NULL,
    [singer_gender] [nvarchar](50) NULL,
    [singer_photo_url] [nvarchar](200) NULL,
    [singer_description] [nvarchar](200) NULL,
 CONSTRAINT [PK_singer_info] PRIMARY KEY CLUSTERED 
(
    [singer_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[singer_type]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[singer_type](
    [singertype_id] [int] IDENTITY(1,1) NOT NULL,
    [singertype_name] [varchar](50) NOT NULL,
 CONSTRAINT [PK_singer_type] PRIMARY KEY CLUSTERED 
(
    [singertype_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[song_info]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[song_info](
    [song_id] [int] IDENTITY(1,1) NOT NULL,
    [song_name] [varchar](50) NOT NULL,
    [song_ab] [varchar](50) NOT NULL,
    [song_word_count] [int] NOT NULL,
    [songtype_id] [int] NOT NULL,
    [singer_id] [int] NULL,
    [song_url] [varchar](200) NOT NULL,
    [song_play_count] [int] NULL,
    [song_ban] [varchar](50) NULL,
 CONSTRAINT [PK_song_info] PRIMARY KEY CLUSTERED 
(
    [song_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[song_type]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[song_type](
    [songtype_id] [int] IDENTITY(1,1) NOT NULL,
    [songtype_name] [varchar](50) NOT NULL,
 CONSTRAINT [PK_song_type] PRIMARY KEY CLUSTERED 
(
    [songtype_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[admin_info] ON 

INSERT [dbo].[admin_info] ([admin_id], [admin_pwd], [admin_name]) VALUES (2, N'bdqn', N'jbit')
SET IDENTITY_INSERT [dbo].[admin_info] OFF
SET IDENTITY_INSERT [dbo].[resource_path] ON 

INSERT [dbo].[resource_path] ([resource_id], [resource_type], [resource_path]) VALUES (1, N'singer_photo', N'D:\Program Files\MyKTV\ReSource\singerPhoto')
INSERT [dbo].[resource_path] ([resource_id], [resource_type], [resource_path]) VALUES (3, N'song', N'D:\Program Files\MyKTV\ReSource\song')
SET IDENTITY_INSERT [dbo].[resource_path] OFF
SET IDENTITY_INSERT [dbo].[singer_info] ON 

INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (13, N'BOBO', 1, N'组合', N'BOBO.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (14, N'薛之谦', 1, N'男', N'薛之谦.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (15, N'后弦', 1, N'男', N'后弦.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (16, N'李宇春', 1, N'女', N'李宇春.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (17, N'方大同', 2, N'男', N'方大同.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (18, N'何韵诗', 2, N'女', N'何韵诗.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (19, N'侧田  ', 2, N'男', N'侧田.jpg ', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (20, N'周杰伦', 3, N'男', N'周杰伦.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (21, N'苏打绿', 3, N'组合', N'苏打绿.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (22, N'SHE', 3, N'组合', N'SHE.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (23, N'王若琳', 3, N'女', N'王若琳.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (24, N'蔡依林', 3, N'女', N'蔡依林.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (25, N'后街男孩', 4, N'组合', N'后街男孩.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (26, N'林肯公园', 4, N'组合', N'林肯公园.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (27, N'Michael Jackson', 4, N'男', N'Michael Jackson.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (28, N'Avril Ramona Lavigne ', 4, N'女', N'Avril Ramona Lavigne.jpg ', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (29, N'super junior', 5, N'组合', N'super junior.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (30, N'东方神起', 5, N'组合', N'东方神起.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (31, N'李孝利', 5, N'女', N'李孝利.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (32, N'Rain', 5, N'男', N'Rain.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (33, N'安室奈美惠', 5, N'女', N'安室奈美惠.jpg', NULL)
SET IDENTITY_INSERT [dbo].[singer_info] OFF
SET IDENTITY_INSERT [dbo].[singer_type] ON 

INSERT [dbo].[singer_type] ([singertype_id], [singertype_name]) VALUES (1, N'大陆')
INSERT [dbo].[singer_type] ([singertype_id], [singertype_name]) VALUES (2, N'香港')
INSERT [dbo].[singer_type] ([singertype_id], [singertype_name]) VALUES (3, N'台湾')
INSERT [dbo].[singer_type] ([singertype_id], [singertype_name]) VALUES (4, N'欧美')
INSERT [dbo].[singer_type] ([singertype_id], [singertype_name]) VALUES (5, N'日韩')
SET IDENTITY_INSERT [dbo].[singer_type] OFF
SET IDENTITY_INSERT [dbo].[song_info] ON 

INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (83, N'爱拼才会赢', N'APCHY', 5, 1, 16, N'爱拼才会赢.mp3', 5, N'伴爱拼才会赢.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (84, N'大侠霍元甲(万里长城永不倒)', N'DXHYJ', 12, 1, 16, N'大侠霍元甲(万里长城永不倒).mp3', 5, N'伴大侠霍元甲(万里长城永不倒).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (85, N'等你一万年', N'DNYWN', 5, 1, 16, N'等你一万年.mp3', 5, N'伴等你一万年.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (86, N'一万个理由', N'YWGLY', 5, 1, 16, N'一万个理由.mp3', 5, N'伴一万个理由.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (87, N'三个和尚', N'SGHS', 4, 1, 16, N'三个和尚.mp3', 5, N'伴三个和尚.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (89, N'冬天里的一把火', N'DTLDYBH', 7, 1, 16, N'冬天里的一把火.mp3', 5, N'伴冬天里的一把火.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (90, N'一翦梅', N'YJM', 3, 1, 16, N'一翦梅.mp3', 5, N'伴一翦梅.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (91, N'摘花椒', N'ZHJ', 3, 1, 16, N'摘花椒.mp3', 5, N'伴摘花椒.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (92, N'亲圪蛋下河洗衣裳', N'QQDXHXY', 7, 1, 16, N'亲圪蛋下河洗衣裳.mp3', 5, N'伴亲圪蛋下河洗衣裳.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (93, N'荷塘月色', N'HTYS', 4, 1, 16, N'荷塘月色.mp3', 5, N'伴荷塘月色.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (94, N' 一个人的寂寞两个人的错', N'YGRDJMLGRDC', 11, 1, 16, N' 一个人的寂寞两个人的错.mp3', 5, N'伴 一个人的寂寞两个人的错.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (95, N'何必用钱谈感情', N'HBYQTGQ', 7, 1, 16, N'何必用钱谈感情.mp3', 5, N'伴何必用钱谈感情.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (96, N'毛委员和我们在一起', N'MWQHWMZYQ', 9, 1, 16, N'毛委员和我们在一起.mp3', 5, N'伴毛委员和我们在一起.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (97, N'你潇洒我漂亮', N'NXSWPL', 6, 1, 16, N'你潇洒我漂亮.mp3', 5, N'伴你潇洒我漂亮.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (98, N'卡夫卡', N'KFK', 3, 1, 16, N' 卡夫卡.mp3', 5, N'伴 卡夫卡.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (99, N'难忘今宵', N'NWJX', 4, 1, 16, N'难忘今宵.mp3', 5, N'伴难忘今宵.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (100, N'做我老婆好不好', N'ZWLPHBH', 7, 1, 16, N' 做我老婆好不好.mp3', 5, N'伴 做我老婆好不好.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (101, N'谁他妈没织过毛衣', N'STMMZGMY', 8, 1, 16, N'谁他妈没织过毛衣.mp3', 5, N'伴谁他妈没织过毛衣.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (102, N'新贵妃醉酒', N'XGFZJ', 6, 1, 16, N'新贵妃醉酒.mp3', 5, N'伴新贵妃醉酒.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (103, N'刚好遇见你', N'GHYJN', 6, 1, 16, N'刚好遇见你.mp3', 5, N'伴刚好遇见你.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (104, N'大中国', N'DZG', 3, 1, 16, N'大中国.mp3', 5, N'伴大中国.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (105, N'策马奔腾(交响乐版)', N'CMBT', 4, 1, 16, N'策马奔腾(交响乐版).mp3', 5, N'伴策马奔腾(交响乐版).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (106, N'歌唱二小放牛郎', N'GCEXFNL', 7, 1, 16, N'歌唱二小放牛郎.mp3', 5, N'伴歌唱二小放牛郎.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (107, N'荷塘月色', N'HTYS', 4, 1, 16, N'荷塘月色(交响乐版).mp3', 5, N'伴荷塘月色(交响乐版).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (108, N'绿旋风', N'LXF', 3, 1, 16, N'绿旋风.mp3', 5, N'伴绿旋风.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (109, N'粉红色的回忆', N'FHSDHY', 6, 1, 16, N'粉红色的回忆.mp3', 5, N'伴粉红色的回忆.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (110, N'我和草原有个约定', N'WHCYYGYD', 8, 1, 16, N'我和草原有个约定.mp3', 5, N'伴我和草原有个约定.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (111, N'手放开', N'SFK', 3, 1, 16, N'手放开.mp3', 5, N'伴手放开.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (112, N'啊朋友 再见', N'APYZJ', 5, 1, 13, N'啊朋友 再见.mp3', 1, N'伴啊朋友 再见.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (113, N'走天涯', N'ZTY', 3, 1, 13, N' 走天涯.mp3', 1, N'伴走天涯.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (114, N'相信未来', N'XXWL', 4, 1, 13, N'相信未来.mp3', 1, N'伴相信未来.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (115, N'QQ爱', N'QQA', 3, 1, 13, N'QQ爱.mp3', 1, N'QQ爱.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (116, N'不要在我寂寞的时候说爱我', N'BYZWJMDSHSAW', 12, 1, 13, N'不要在我寂寞的时候说爱我.mp3', 1, N'伴不要在我寂寞的时候说爱我.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (117, N'老爸老妈', N'LBLM', 4, 1, 13, N'老爸老妈.mp3', 1, N'伴老爸老妈.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (118, N'民歌大联唱', N'MGDLC', 5, 2, 15, N'民歌大联唱.mp3', 2, N'伴民歌大联唱.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (119, N'天上不会掉馍馍', N'TSBHDMM', 7, 2, 15, N'天上不会掉馍馍.mp3', 2, N'伴天上不会掉馍馍.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (120, N'五哥放羊', N'WGFY', 4, 2, 15, N'五哥放羊.mp3', 2, N'伴五哥放羊.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (121, N'有一种爱叫做放手', N'YYZAJZFS', 8, 2, 15, N'有一种爱叫做放手.mp3', 2, N'伴有一种爱叫做放手.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (122, N'刀剑如梦2.0', N'DJRM', 4, 2, 15, N'刀剑如梦2.0.mp3', 2, N'伴刀剑如梦2.0.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (123, N'三十里铺', N'SSLP', 4, 2, 15, N' 三十里铺.mp3', 2, N'伴三十里铺.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (124, N'在心里从此永远有个你', N'ZXLCCYYYGN', 10, 3, 16, N'在心里从此永远有个你.mp3', 3, N'伴 在心里从此永远有个你.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (125, N'英雄谁属', N'YXSS', 4, 3, 16, N' 英雄谁属.mp3', 3, N'伴英雄谁属.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (126, N'吉祥三宝', N'JXSB', 4, 3, 16, N' 吉祥三宝.mp3', 3, N'伴吉祥三宝.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (127, N'日不落(Live)', N'RBL', 3, 3, 16, N'日不落(Live).mp3', 3, N'伴日不落(Live).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (128, N'山西茉莉花', N'SXMLH', 5, 3, 16, N'山西茉莉花.mp3', 3, N'伴山西茉莉花.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (129, N'挣点小钱', N'ZDXQ', 4, 3, 16, N'挣点小钱.mp3', 3, N'伴挣点小钱.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (130, N'别洞天', N'BDT', 3, 4, 17, N'  别洞天.mp3', 4, N'伴别洞天.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (131, N'金珑璁', N'JLE', 3, 4, 17, N'  金珑璁.mp3', 4, N'伴金珑璁.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (132, N'水岸风堤', N'SAFT', 4, 4, 17, N'水岸风堤.mp3', 4, N'伴水岸风堤.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (133, N'笑问客', N'XWK', 3, 4, 17, N'笑问客.mp3', 4, N'伴笑问客.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (134, N'红太阳', N'HTY', 3, 4, 17, N'红太阳.mp3', 4, N'伴红太阳.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (135, N'千千阙歌', N'QQJG', 4, 4, 17, N'千千阙歌.mp3', 4, N'伴千千阙歌.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (136, N'白狐', N'BH', 2, 5, 18, N'白狐.mp3', 5, N'伴白狐.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (137, N'九月九的酒', N'JYJDJ', 5, 5, 18, N'九月九的酒.mp3', 5, N'伴九月九的酒.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (138, N'全世界最伤心的人', N'QSJZSXDR', 8, 5, 18, N'全世界最伤心的人.mp3', 5, N'伴全世界最伤心的人.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (139, N'爱情骗子我问你', N'AQPZWWN', 7, 5, 18, N'爱情骗子我问你.mp3', 5, N'伴 爱情骗子我问你.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (140, N'爱人跟人走', N'ARGRZ', 5, 5, 18, N'爱人跟人走.mp3', 5, N'伴爱人跟人走.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (141, N'边做边爱', N'BZBA', 4, 5, 18, N'边做边爱.mp3', 5, N'伴边做边爱.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (142, N'哥 只是个传说', N'GZSGCS', 6, 6, 19, N' 哥 只是个传说.mp3', 6, N'伴哥 只是个传说.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (143, N'稳稳的幸福', N'WWDXF', 5, 6, 19, N'稳稳的幸福.mp3', 6, N'伴稳稳的幸福.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (144, N'男人就是累', N'NRJSL', 5, 6, 19, N'男人就是累.mp3', 6, N'伴男人就是累.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (145, N'偷偷的哭', N'TTDK', 4, 6, 19, N'偷偷的哭.mp3', 6, N'伴偷偷的哭.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (146, N'乱红(笛)', N'LH', 2, 6, 19, N'乱红(笛).mp3', 6, N'伴乱红(笛).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (147, N'北郊', N'BJ', 2, 6, 19, N'北郊.mp3', 6, N'伴北郊.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (148, N'十不该', N'SBG', 3, 1, 20, N'十不该.mp3', 7, N'伴十不该.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (149, N'今生缘', N'JSY', 3, 1, 20, N'今生缘.mp3', 7, N'伴今生缘.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (150, N'茉莉花', N'MLH', 3, 1, 20, N'茉莉花.mp3', 7, N'伴茉莉花.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (151, N'一无所有', N'YWSY', 4, 1, 20, N'一无所有.mp3', 7, N'伴一无所有.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (152, N'父亲', N'FQ', 2, 1, 20, N'父亲.mp3', 7, N'伴父亲.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (153, N'湘妃竹(箜篌独奏曲)', N'SFZ', 3, 1, 20, N'湘妃竹(箜篌独奏曲).mp3', 7, N'伴湘妃竹(箜篌独奏曲).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (154, N'败家娘们儿', N'BJNM', 4, 2, 21, N'败家娘们儿.mp3', 8, N'伴败家娘们儿.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (155, N'倍儿爽 (官方正式版)', N'BES', 3, 2, 21, N'倍儿爽 (官方正式版).mp3', 8, N'伴倍儿爽 (官方正式版).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (156, N'我们不一样', N'WMBYY', 5, 2, 21, N'我们不一样.mp3', 8, N'伴败我们不一样.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (157, N'悟空', N'WK', 2, 2, 21, N'悟空.mp3', 8, N'伴悟空.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (158, N'信天游(陕北民歌)', N'XTY', 3, 2, 21, N'信天游(陕北民歌).mp3', 8, N'伴信天游(陕北民歌).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (159, N'摘花椒(二)', N'ZHJ', 3, 2, 21, N'摘花椒(二).mp3', 8, N'伴摘花椒(二).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (160, N'红星照我去战斗', N'HXZWQZD', 7, 3, 22, N'红星照我去战斗.mp3', 9, N'伴红星照我去战斗.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (161, N'梦醒时分', N'MXSF', 4, 3, 22, N'梦醒时分.mp3', 9, N'伴梦醒时分.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (162, N'花好月圆', N'HHYY', 4, 3, 22, N'花好月圆.mp3', 9, N'伴花好月圆.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (163, N'李伯伯要当红军', N'LBBYDHJ', 7, 3, 22, N'李伯伯要当红军.mp3', 9, N'伴李伯伯要当红军.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (164, N'相亲相爱', N'XJXA', 4, 3, 22, N'相亲相爱.mp3', 9, N'伴相亲相爱.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (165, N'有钱男子汉没钱汉子难', N'YQNZHMQHZN', 10, 3, 22, N'有钱男子汉没钱汉子难.mp3', 9, N'伴有钱男子汉没钱汉子难.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (166, N'当', N'D', 1, 4, 23, N'当.mp3', 10, N'伴当.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (167, N'树上的鸟儿成双对', N'SSDNECSD', 8, 4, 23, N'树上的鸟儿成双对.mp3', 10, N'伴树上的鸟儿成双对.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (168, N'青年团员之歌', N'NNTYZG', 6, 4, 23, N'青年团员之歌.mp3', 10, N'伴青年团员之歌.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (169, N'一万个理由', N'YWGLY', 5, 4, 23, N'一万个理由.mp3', 10, N'伴一万个理由.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (170, N'火苗', N'HM', 2, 4, 23, N'火苗.mp3', 10, N'伴火苗.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (171, N'忐忑', N'TT', 2, 4, 23, N'忐忑.mp3', 10, N'伴忐忑.mp3')
SET IDENTITY_INSERT [dbo].[song_info] OFF
SET IDENTITY_INSERT [dbo].[song_type] ON 

INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (1, N'热门流行')
INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (2, N'经典老歌')
INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (3, N'影视金曲')
INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (4, N'游戏动漫')
INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (5, N'京剧戏曲')
INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (6, N'儿歌')
SET IDENTITY_INSERT [dbo].[song_type] OFF
ALTER TABLE [dbo].[singer_info] ADD  CONSTRAINT [DF_singer_info_singer_gender]  DEFAULT ('男') FOR [singer_gender]
GO
ALTER TABLE [dbo].[song_info] ADD  CONSTRAINT [DF_song_info_song_play_count]  DEFAULT ((0)) FOR [song_play_count]
GO
ALTER TABLE [dbo].[singer_info]  WITH CHECK ADD  CONSTRAINT [FK_singer_info_singer_type] FOREIGN KEY([singertype_id])
REFERENCES [dbo].[singer_type] ([singertype_id])
GO
ALTER TABLE [dbo].[singer_info] CHECK CONSTRAINT [FK_singer_info_singer_type]
GO
ALTER TABLE [dbo].[song_info]  WITH CHECK ADD  CONSTRAINT [FK_song_info_singer_info] FOREIGN KEY([singer_id])
REFERENCES [dbo].[singer_info] ([singer_id])
GO
ALTER TABLE [dbo].[song_info] CHECK CONSTRAINT [FK_song_info_singer_info]
GO
ALTER TABLE [dbo].[song_info]  WITH CHECK ADD  CONSTRAINT [FK_song_info_song_type] FOREIGN KEY([songtype_id])
REFERENCES [dbo].[song_type] ([songtype_id])
GO
ALTER TABLE [dbo].[song_info] CHECK CONSTRAINT [FK_song_info_song_type]
GO
ALTER TABLE [dbo].[singer_info]  WITH CHECK ADD  CONSTRAINT [CK_singer_info] CHECK  (([singer_gender]='男' OR [singer_gender]='女' OR [singer_gender]='组合'))
GO
ALTER TABLE [dbo].[singer_info] CHECK CONSTRAINT [CK_singer_info]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'管理员Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'admin_info', @level2type=N'COLUMN',@level2name=N'admin_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'密码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'admin_info', @level2type=N'COLUMN',@level2name=N'admin_pwd'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'管理员姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'admin_info', @level2type=N'COLUMN',@level2name=N'admin_name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'资源类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'resource_path', @level2type=N'COLUMN',@level2name=N'resource_type'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'资源路径' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'resource_path', @level2type=N'COLUMN',@level2name=N'resource_path'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_info', @level2type=N'COLUMN',@level2name=N'singer_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_info', @level2type=N'COLUMN',@level2name=N'singer_name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_info', @level2type=N'COLUMN',@level2name=N'singertype_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手性别:男、女、组合' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_info', @level2type=N'COLUMN',@level2name=N'singer_gender'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手肖像URL' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_info', @level2type=N'COLUMN',@level2name=N'singer_photo_url'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手分类编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_type', @level2type=N'COLUMN',@level2name=N'singertype_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手分类名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_type', @level2type=N'COLUMN',@level2name=N'singertype_name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲名拼音' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_ab'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲名字数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_word_count'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'songtype_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'singer_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲Url' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_url'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲播放次数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_play_count'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲分类编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_type', @level2type=N'COLUMN',@level2name=N'songtype_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲分类名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_type', @level2type=N'COLUMN',@level2name=N'songtype_name'
GO
USE [master]
GO
ALTER DATABASE [MyKTV] SET  READ_WRITE 
GO

数据库脚本放在sqlserver里面修改一下路径,直接执行即可。
前台下载链接:前台下载
后台下载链接:后台下载

还有设呢么问题下面留言评论~

目录
相关文章
|
1月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
132 68
|
1月前
|
SQL Java 数据库连接
深入 MyBatis-Plus 插件:解锁高级数据库功能
Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开发效率、优化性能和实现一些常用的功能。
245 26
深入 MyBatis-Plus 插件:解锁高级数据库功能
|
1月前
|
SQL 测试技术 数据库
|
1月前
|
XML 数据库 数据格式
数据库 校验名称唯一性,用于新增和修改功能
数据库 校验名称唯一性,用于新增和修改功能
47 8
|
1月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
38 1
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
125 3
|
1月前
|
XML 数据库 数据格式
数据库 校验名称唯一性,用于新增和修改功能
数据库 校验名称唯一性,用于新增和修改功能
45 1
|
1月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
44 1
|
2月前
|
SQL 关系型数据库 MySQL
|
2月前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
163 3